mirror of https://gitee.com/openkylin/linux.git
scsi: qla2xxx: Fix hardlockup in abort command during driver remove
[436194.555537] NMI watchdog: Watchdog detected hard LOCKUP on cpu 5
[436194.555558] RIP: 0010:native_queued_spin_lock_slowpath+0x63/0x1e0
[436194.555563] Call Trace:
[436194.555564] _raw_spin_lock_irqsave+0x30/0x40
[436194.555564] qla24xx_async_abort_command+0x29/0xd0 [qla2xxx]
[436194.555565] qla24xx_abort_command+0x208/0x2d0 [qla2xxx]
[436194.555565] __qla2x00_abort_all_cmds+0x16b/0x290 [qla2xxx]
[436194.555565] qla2x00_abort_all_cmds+0x42/0x60 [qla2xxx]
[436194.555566] qla2x00_abort_isp_cleanup+0x2bd/0x3a0 [qla2xxx]
[436194.555566] qla2x00_remove_one+0x1ad/0x360 [qla2xxx]
[436194.555566] pci_device_remove+0x3b/0xb0
Fixes: 219d27d714
(scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands)
Cc: stable@vger.kernel.org # 5.2
Signed-off-by: Arun Easi <aeasi@marvell.com>
Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
24e2e7a19f
commit
5589b08e5b
|
@ -1731,8 +1731,8 @@ static void qla2x00_abort_srb(struct qla_qpair *qp, srb_t *sp, const int res,
|
|||
!test_bit(ABORT_ISP_ACTIVE, &vha->dpc_flags) &&
|
||||
!qla2x00_isp_reg_stat(ha))) {
|
||||
sp->comp = ∁
|
||||
rval = ha->isp_ops->abort_command(sp);
|
||||
spin_unlock_irqrestore(qp->qp_lock_ptr, *flags);
|
||||
rval = ha->isp_ops->abort_command(sp);
|
||||
|
||||
switch (rval) {
|
||||
case QLA_SUCCESS:
|
||||
|
|
Loading…
Reference in New Issue