Patch "scsi: qla2xxx: Fix system crash due to bad pointer access" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    scsi: qla2xxx: Fix system crash due to bad pointer access

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     scsi-qla2xxx-fix-system-crash-due-to-bad-pointer-acc.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit bbb771cc2f32e9948ccc3610fd799ceee90d8b3d
Author: Quinn Tran <qutran@xxxxxxxxxxx>
Date:   Mon Oct 30 12:19:12 2023 +0530

    scsi: qla2xxx: Fix system crash due to bad pointer access
    
    [ Upstream commit 19597cad64d608aa8ac2f8aef50a50187a565223 ]
    
    User experiences system crash when running AER error injection.  The
    perturbation causes the abort-all-I/O path to trigger. The driver assumes
    all I/O on this path is FCP only. If there is both NVMe & FCP traffic, a
    system crash happens. Add additional check to see if I/O is FCP or not
    before access.
    
    PID: 999019  TASK: ff35d769f24722c0  CPU: 53  COMMAND: "kworker/53:1"
     0 [ff3f78b964847b58] machine_kexec at ffffffffae86973d
     1 [ff3f78b964847ba8] __crash_kexec at ffffffffae9be29d
     2 [ff3f78b964847c70] crash_kexec at ffffffffae9bf528
     3 [ff3f78b964847c78] oops_end at ffffffffae8282ab
     4 [ff3f78b964847c98] exc_page_fault at ffffffffaf2da502
     5 [ff3f78b964847cc0] asm_exc_page_fault at ffffffffaf400b62
       [exception RIP: qla2x00_abort_srb+444]
       RIP: ffffffffc07b5f8c  RSP: ff3f78b964847d78  RFLAGS: 00010046
       RAX: 0000000000000282  RBX: ff35d74a0195a200  RCX: ff35d76886fd03a0
       RDX: 0000000000000001  RSI: ffffffffc07c5ec8  RDI: ff35d74a0195a200
       RBP: ff35d76913d22080   R8: ff35d7694d103200   R9: ff35d7694d103200
       R10: 0000000100000000  R11: ffffffffb05d6630  R12: 0000000000010000
       R13: ff3f78b964847df8  R14: ff35d768d8754000  R15: ff35d768877248e0
       ORIG_RAX: ffffffffffffffff  CS: 0010  SS: 0018
     6 [ff3f78b964847d70] qla2x00_abort_srb at ffffffffc07b5f84 [qla2xxx]
     7 [ff3f78b964847de0] __qla2x00_abort_all_cmds at ffffffffc07b6238 [qla2xxx]
     8 [ff3f78b964847e38] qla2x00_abort_all_cmds at ffffffffc07ba635 [qla2xxx]
     9 [ff3f78b964847e58] qla2x00_terminate_rport_io at ffffffffc08145eb [qla2xxx]
    10 [ff3f78b964847e70] fc_terminate_rport_io at ffffffffc045987e [scsi_transport_fc]
    11 [ff3f78b964847e88] process_one_work at ffffffffae914f15
    12 [ff3f78b964847ed0] worker_thread at ffffffffae9154c0
    13 [ff3f78b964847f10] kthread at ffffffffae91c456
    14 [ff3f78b964847f50] ret_from_fork at ffffffffae8036ef
    
    Cc: stable@xxxxxxxxxxxxxxx
    Fixes: f45bca8c5052 ("scsi: qla2xxx: Fix double scsi_done for abort path")
    Signed-off-by: Quinn Tran <qutran@xxxxxxxxxxx>
    Signed-off-by: Nilesh Javali <njavali@xxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20231030064912.37912-1-njavali@xxxxxxxxxxx
    Signed-off-by: Martin K. Petersen <martin.petersen@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 136522a1c7281..0930bf996cd30 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -1714,8 +1714,16 @@ static void qla2x00_abort_srb(struct qla_qpair *qp, srb_t *sp, const int res,
 		}
 
 		spin_lock_irqsave(qp->qp_lock_ptr, *flags);
-		if (ret_cmd && blk_mq_request_started(scsi_cmd_to_rq(cmd)))
-			sp->done(sp, res);
+		switch (sp->type) {
+		case SRB_SCSI_CMD:
+			if (ret_cmd && blk_mq_request_started(scsi_cmd_to_rq(cmd)))
+				sp->done(sp, res);
+			break;
+		default:
+			if (ret_cmd)
+				sp->done(sp, res);
+			break;
+		}
 	} else {
 		sp->done(sp, res);
 	}



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux