diff options
author | Andrew Morton <[email protected]> | 2006-11-08 19:56:26 -0800 |
---|---|---|
committer | James Bottomley <[email protected]> | 2006-11-15 16:43:30 -0600 |
commit | 297295ae6653af1356dd35a8edc411e2715aec57 (patch) | |
tree | eee8a6f0258cbcf41f90976c8aa76304791cd1f0 | |
parent | e5f82ab8342b527231cfcccde1fe265666e86b7b (diff) |
[SCSI] ips: fix soft lockup during reset initialization
Resetting the adapter causes the ServeRAID driver to exceed the max time
allowed by the softlock watchdog. Resetting the hardware can easily require
30 or more seconds. To avoid the
"BUG: soft lockup detected on CPU#0!"
result, this patch adds a touch_nmi_watchdog() to the driver's MDELAY macro.
Cc: Nishanth Aravamudan <[email protected]>
Cc: Nick Piggin <[email protected]>
Acked-by: Jack Hammer <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: James Bottomley <[email protected]>
-rw-r--r-- | drivers/scsi/ips.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/scsi/ips.h b/drivers/scsi/ips.h index 34680f3dd452..b726dcc424b1 100644 --- a/drivers/scsi/ips.h +++ b/drivers/scsi/ips.h @@ -51,6 +51,7 @@ #define _IPS_H_ #include <linux/version.h> +#include <linux/nmi.h> #include <asm/uaccess.h> #include <asm/io.h> @@ -116,9 +117,11 @@ dev_printk(level , &((pcidev)->dev) , format , ## arg) #endif - #ifndef MDELAY - #define MDELAY mdelay - #endif + #define MDELAY(n) \ + do { \ + mdelay(n); \ + touch_nmi_watchdog(); \ + } while (0) #ifndef min #define min(x,y) ((x) < (y) ? x : y) |