<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">

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 &lt;linux/kmod.h&gt;
 #include &lt;linux/delay.h&gt;
 #include &lt;linux/workqueue.h&gt;
+#include &lt;linux/nmi.h&gt;
 #include &lt;acpi/acpi.h&gt;
 #include &lt;asm/io.h&gt;
 #include &lt;acpi/acpi_bus.h&gt;
@@ -291,11 +292,14 @@ acpi_os_sleep(u32 sec, u32 ms)
 void
 acpi_os_stall(u32 us)
 {
-	if (us &gt; 10000) {
-		mdelay(us / 1000);
-	}
-	else {
-		udelay(us);
+	while (us) {
+		u32 delay = 1000;
+
+		if (delay &gt; us)
+			delay = us;
+		udelay(delay);
+		touch_nmi_watchdog();
+		us -= delay;
 	}
 }
 

_
</pre></body></html>