[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>
This commit is contained in:
parent
999916dc59
commit
c8582ad95b
|
@ -3761,10 +3761,15 @@ qla82xx_device_state_handler(scsi_qla_host_t *vha)
|
||||||
qla82xx_idc_lock(ha);
|
qla82xx_idc_lock(ha);
|
||||||
break;
|
break;
|
||||||
case QLA82XX_DEV_NEED_RESET:
|
case QLA82XX_DEV_NEED_RESET:
|
||||||
if (!ql2xdontresethba)
|
if (!ql2xdontresethba)
|
||||||
qla82xx_need_reset_handler(vha);
|
qla82xx_need_reset_handler(vha);
|
||||||
|
else {
|
||||||
|
qla82xx_idc_unlock(ha);
|
||||||
|
msleep(1000);
|
||||||
|
qla82xx_idc_lock(ha);
|
||||||
|
}
|
||||||
dev_init_timeout = jiffies +
|
dev_init_timeout = jiffies +
|
||||||
(ha->nx_dev_init_timeout * HZ);
|
(ha->nx_dev_init_timeout * HZ);
|
||||||
break;
|
break;
|
||||||
case QLA82XX_DEV_NEED_QUIESCENT:
|
case QLA82XX_DEV_NEED_QUIESCENT:
|
||||||
qla82xx_need_qsnt_handler(vha);
|
qla82xx_need_qsnt_handler(vha);
|
||||||
|
|
Loading…
Reference in New Issue