From: Giridhar Malavali Date: Wed, 22 Dec 2010 00:00:26 +0000 (-0800) Subject: [SCSI] qla2xxx: Fix to avoid recursive lock failure during BSG timeout. X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=900a36e3277ac9109fe364a6a1420c71265f9377;p=linux-beck.git [SCSI] qla2xxx: Fix to avoid recursive lock failure during BSG timeout. Signed-off-by: Giridhar Malavali Signed-off-by: Madhuranath Iyengar Signed-off-by: James Bottomley --- 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) if (((sp_bsg->type == SRB_CT_CMD) || (sp_bsg->type == SRB_ELS_CMD_HST)) && (sp_bsg->u.bsg_job == bsg_job)) { + spin_unlock_irqrestore(&ha->hardware_lock, flags); if (ha->isp_ops->abort_command(sp)) { DEBUG2(qla_printk(KERN_INFO, ha, "scsi(%ld): mbx " @@ -1527,6 +1528,7 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job) bsg_job->req->errors = bsg_job->reply->result = 0; } + spin_lock_irqsave(&ha->hardware_lock, flags); goto done; } }