diff options
author | Giridhar Malavali <giridhar.malavali@qlogic.com> | 2010-12-21 19:00:26 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-12-23 17:09:33 -0500 |
commit | 900a36e3277ac9109fe364a6a1420c71265f9377 (patch) | |
tree | c691bd049e1a9db8817608284bbcbe2f01f7ec09 /drivers/scsi | |
parent | 0ce87911491d4167198b863c102c7e4d09202561 (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.c | 2 |
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 | } |