summaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
authorSawan Chandak <sawan.chandak@qlogic.com>2014-09-25 11:16:52 +0200
committerChristoph Hellwig <hch@lst.de>2014-09-25 14:25:03 +0200
commit9d35894d338abc351cad8b0c0d5fb3e992f5cea9 (patch)
tree074de26ae93329527cdc4c3cfb8d94ae6a0109d9 /drivers/scsi
parentqla2xxx: Unload of qla2xxx driver crashes the machine. (diff)
downloadlinux-9d35894d338abc351cad8b0c0d5fb3e992f5cea9.tar.xz
linux-9d35894d338abc351cad8b0c0d5fb3e992f5cea9.zip
qla2xxx: Add fix in driver unload for pending activity.
Signed-off-by: Sawan Chandak <sawan.chandak@qlogic.com> Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'drivers/scsi')
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 4880f0b2daa3..72b94f9ca637 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -860,8 +860,10 @@ qla2x00_wait_for_hba_ready(scsi_qla_host_t *vha)
{
struct qla_hw_data *ha = vha->hw;
- while ((!(vha->flags.online) || ha->dpc_active ||
- ha->flags.mbox_busy))
+ while (((qla2x00_reset_active(vha)) || ha->dpc_active ||
+ ha->flags.mbox_busy) ||
+ test_bit(FX00_RESET_RECOVERY, &vha->dpc_flags) ||
+ test_bit(FX00_TARGET_SCAN, &vha->dpc_flags))
msleep(1000);
}