

ACPI poweroff trigers the NMI watchdog.  Fix.



 drivers/acpi/osl.c |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff -puN drivers/acpi/osl.c~apci-nmi-watchdog-fix drivers/acpi/osl.c
--- 25/drivers/acpi/osl.c~apci-nmi-watchdog-fix	2003-07-01 23:02:57.000000000 -0700
+++ 25-akpm/drivers/acpi/osl.c	2003-07-01 23:04:50.000000000 -0700
@@ -35,6 +35,7 @@
 #include <linux/kmod.h>
 #include <linux/delay.h>
 #include <linux/workqueue.h>
+#include <linux/nmi.h>
 #include <acpi/acpi.h>
 #include <asm/io.h>
 #include <acpi/acpi_bus.h>
@@ -291,11 +292,14 @@ acpi_os_sleep(u32 sec, u32 ms)
 void
 acpi_os_stall(u32 us)
 {
-	if (us > 10000) {
-		mdelay(us / 1000);
-	}
-	else {
-		udelay(us);
+	while (us) {
+		u32 delay = 1000;
+
+		if (delay > us)
+			delay = us;
+		udelay(delay);
+		touch_nmi_watchdog();
+		us -= delay;
 	}
 }
 

_
