skip_settle_delay support for MPT fusion driver
Subsystems (2)
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, };/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/