[SCSI] qla4xxx: Correctly handle msleep_interruptible
authorVikas Chaudhary <vikas.chaudhary@qlogic.com>
Mon, 16 Dec 2013 11:49:37 +0000 (06:49 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Sat, 15 Mar 2014 17:19:13 +0000 (10:19 -0700)
If waiting for signals was interrupted then the device was put to
FAILED state. Use msleep instead of msleep_interruptible to handle
this correctly.

Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/qla4xxx/ql4_nx.c

index 0ec07ec..cbc68f9 100644 (file)
@@ -2820,7 +2820,7 @@ void qla4_8xxx_get_minidump(struct scsi_qla_host *ha)
 int qla4_8xxx_device_bootstrap(struct scsi_qla_host *ha)
 {
        int rval = QLA_ERROR;
-       int i, timeout;
+       int i;
        uint32_t old_count, count;
        int need_reset = 0, peg_stuck = 1;
 
@@ -2828,13 +2828,7 @@ int qla4_8xxx_device_bootstrap(struct scsi_qla_host *ha)
        old_count = qla4_8xxx_rd_direct(ha, QLA8XXX_PEG_ALIVE_COUNTER);
 
        for (i = 0; i < 10; i++) {
-               timeout = msleep_interruptible(200);
-               if (timeout) {
-                       qla4_8xxx_wr_direct(ha, QLA8XXX_CRB_DEV_STATE,
-                                           QLA8XXX_DEV_FAILED);
-                       return rval;
-               }
-
+               msleep(200);
                count = qla4_8xxx_rd_direct(ha, QLA8XXX_PEG_ALIVE_COUNTER);
                if (count != old_count)
                        peg_stuck = 0;