aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx
diff options
context:
space:
mode:
authorSaurav Kashyap <saurav.kashyap@qlogic.com>2011-08-16 14:31:46 -0400
committerJames Bottomley <JBottomley@Parallels.com>2011-08-29 03:14:55 -0400
commitc8582ad95bcbdf46f799d310d7dfee73d941c2f4 (patch)
tree82004ba6ad4b678a74f66ffacd8b40676a13f7a4 /drivers/scsi/qla2xxx
parent999916dc59dc2fb0de221ad607d58cdc88fcbbe4 (diff)
[SCSI] qla2xxx: Prevent CPU lockups when "ql2xdontresethba" module param is set.
Driver is not releasing the lock if ql2xdontresethba is set, this might lead to a lockup. Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r--drivers/scsi/qla2xxx/qla_nx.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/scsi/qla2xxx/qla_nx.c b/drivers/scsi/qla2xxx/qla_nx.c
index b03c86b7a989..fe9db224794d 100644
--- a/drivers/scsi/qla2xxx/qla_nx.c
+++ b/drivers/scsi/qla2xxx/qla_nx.c
@@ -3761,10 +3761,15 @@ qla82xx_device_state_handler(scsi_qla_host_t *vha)
3761 qla82xx_idc_lock(ha); 3761 qla82xx_idc_lock(ha);
3762 break; 3762 break;
3763 case QLA82XX_DEV_NEED_RESET: 3763 case QLA82XX_DEV_NEED_RESET:
3764 if (!ql2xdontresethba) 3764 if (!ql2xdontresethba)
3765 qla82xx_need_reset_handler(vha); 3765 qla82xx_need_reset_handler(vha);
3766 else {
3767 qla82xx_idc_unlock(ha);
3768 msleep(1000);
3769 qla82xx_idc_lock(ha);
3770 }
3766 dev_init_timeout = jiffies + 3771 dev_init_timeout = jiffies +
3767 (ha->nx_dev_init_timeout * HZ); 3772 (ha->nx_dev_init_timeout * HZ);
3768 break; 3773 break;
3769 case QLA82XX_DEV_NEED_QUIESCENT: 3774 case QLA82XX_DEV_NEED_QUIESCENT:
3770 qla82xx_need_qsnt_handler(vha); 3775 qla82xx_need_qsnt_handler(vha);