Skip to contentSkip to conversation

Subject: Add constraints on usage of ACPI Sleep function

PATCH New Alexey Starikovskiy 1 participant 1 message May 6, 2010 ACPI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Subject: Add constraints on usage of ACPI Sleep function

Panasonic Toughbook CF-52 may use uninitialized variable as argument to Sleep(), thus stopping init sequence for about 45 days (0xf0000def ms). Add constraints to not sleep that long, and also to not sleep during init.

References: http://bugzilla.novell.com/show_bug.cgi?id=557710

	    http://bugzilla.kernel.org/show_bug.cgi?id=13195

---

 drivers/acpi/osl.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)
drivers/acpi/osl.c +8 -1
index 7594f65..7a58dc5 100644
@@ -438,7 +438,14 @@ acpi_status acpi_os_remove_interrupt_handler(u32 irq, acpi_osd_handler handler)
 
 void acpi_os_sleep(u64 ms)
 {
-	schedule_timeout_interruptible(msecs_to_jiffies(ms));
+	if (ms > 1000) {
+		printk(KERN_WARNING "ACPI: Limit long sleep to 1 second\n");
+		ms = 1000;
+	}
+	if (system_state == SYSTEM_RUNNING)
+		schedule_timeout_interruptible(msecs_to_jiffies(ms));
+	else
+		acpi_os_stall(ms * 1000);
 }
 
 void acpi_os_stall(u32 us)