From: Andrew Morton 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 Cc: Nick Piggin Acked-by: Jack Hammer Signed-off-by: Andrew Morton --- drivers/scsi/ips.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff -puN drivers/scsi/ips.h~scsi-ips-soft-lockup-during-reset-initialization-2 drivers/scsi/ips.h --- a/drivers/scsi/ips.h~scsi-ips-soft-lockup-during-reset-initialization-2 +++ a/drivers/scsi/ips.h @@ -51,6 +51,7 @@ #define _IPS_H_ #include +#include #include #include @@ -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) _