Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -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 @@
            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)