Skip to contentSkip to conversation

skip_settle_delay support for MPT fusion driver

RFC PATCH New Masao Fukuchi 1 participant 1 message Nov 2, 2004

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

RFC PATCH 1/1 skip_settle_delay support for MPT fusion driver

Eric,

This patch supports skip_settle_delay flag to skip 10 seconds sleep at bus reset sequence.

Thanks,
M.Fukuchi

diff -uarN linux-2.6.9/drivers/message/fusion/mptscsih.c linux-2.6.9- reset/drivers/message/fusion/mptscsih.c

drivers/message/fusion/mptscsih.c +14 -0
@@ -2510,6 +2510,8 @@
 {
 	MPT_SCSI_HOST	*hd;
 	spinlock_t	*host_lock = SCpnt->device->host->host_lock;
+	int             loop_count = 10 * 4; /* Wait 10 seconds */
+	unsigned long   flags;
 
 	/* If we can't locate our host adapter structure, return FAILED status.
 	 */
@@ -2543,7 +2545,18 @@
 		spin_lock_irq(host_lock);
 		return FAILED;
 	}
+	do {
+		spin_lock_irqsave(&hd->ioc->FreeQlock, flags);
+		if (hd->tmState == TM_STATE_NONE) {
+			spin_unlock_irqrestore(&hd->ioc->FreeQlock, flags);
+			break;
+		}
+		spin_unlock_irqrestore(&hd->ioc->FreeQlock, flags);
+		msleep(250);
+	} while (--loop_count);
 	spin_lock_irq(host_lock);
+	if (loop_count == 0)
+		return FAILED;
 	return SUCCESS;
 }
 
@@ -3322,6 +3335,7 @@
 	.max_sectors			= 8192,
 	.cmd_per_lun			= 7,
 	.use_clustering			= ENABLE_CLUSTERING,
+	.skip_settle_delay		= 1,
 };
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/