aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorGiridhar Malavali <giridhar.malavali@qlogic.com>2010-12-21 19:00:26 -0500
committerJames Bottomley <James.Bottomley@suse.de>2010-12-23 17:09:33 -0500
commit900a36e3277ac9109fe364a6a1420c71265f9377 (patch)
treec691bd049e1a9db8817608284bbcbe2f01f7ec09 /drivers/scsi
parent0ce87911491d4167198b863c102c7e4d09202561 (diff)
[SCSI] qla2xxx: Fix to avoid recursive lock failure during BSG timeout.
Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com> Signed-off-by: Madhuranath Iyengar <Madhu.Iyengar@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla2xxx/qla_bsg.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/qla2xxx/qla_bsg.c b/drivers/scsi/qla2xxx/qla_bsg.c
index 10942fc9808d..903b0586ded3 100644
--- a/drivers/scsi/qla2xxx/qla_bsg.c
+++ b/drivers/scsi/qla2xxx/qla_bsg.c
@@ -1512,6 +1512,7 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
1512 if (((sp_bsg->type == SRB_CT_CMD) || 1512 if (((sp_bsg->type == SRB_CT_CMD) ||
1513 (sp_bsg->type == SRB_ELS_CMD_HST)) 1513 (sp_bsg->type == SRB_ELS_CMD_HST))
1514 && (sp_bsg->u.bsg_job == bsg_job)) { 1514 && (sp_bsg->u.bsg_job == bsg_job)) {
1515 spin_unlock_irqrestore(&ha->hardware_lock, flags);
1515 if (ha->isp_ops->abort_command(sp)) { 1516 if (ha->isp_ops->abort_command(sp)) {
1516 DEBUG2(qla_printk(KERN_INFO, ha, 1517 DEBUG2(qla_printk(KERN_INFO, ha,
1517 "scsi(%ld): mbx " 1518 "scsi(%ld): mbx "
@@ -1527,6 +1528,7 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
1527 bsg_job->req->errors = 1528 bsg_job->req->errors =
1528 bsg_job->reply->result = 0; 1529 bsg_job->reply->result = 0;
1529 } 1530 }
1531 spin_lock_irqsave(&ha->hardware_lock, flags);
1530 goto done; 1532 goto done;
1531 } 1533 }
1532 } 1534 }