Commit 297295ae authored by Andrew Morton's avatar Andrew Morton Committed by James Bottomley

[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 <nacc@us.ibm.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Acked-by: default avatarJack Hammer <jack_hammer@adaptec.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent e5f82ab8
...@@ -51,6 +51,7 @@ ...@@ -51,6 +51,7 @@
#define _IPS_H_ #define _IPS_H_
#include <linux/version.h> #include <linux/version.h>
#include <linux/nmi.h>
#include <asm/uaccess.h> #include <asm/uaccess.h>
#include <asm/io.h> #include <asm/io.h>
...@@ -116,9 +117,11 @@ ...@@ -116,9 +117,11 @@
dev_printk(level , &((pcidev)->dev) , format , ## arg) dev_printk(level , &((pcidev)->dev) , format , ## arg)
#endif #endif
#ifndef MDELAY #define MDELAY(n) \
#define MDELAY mdelay do { \
#endif mdelay(n); \
touch_nmi_watchdog(); \
} while (0)
#ifndef min #ifndef min
#define min(x,y) ((x) < (y) ? x : y) #define min(x,y) ((x) < (y) ? x : y)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment