]> git.neil.brown.name Git - history.git/commitdiff
[ACPI] firmware wakeup address is physical, not virtual (David Shaohua Li)
authorLen Brown <len.brown@intel.com>
Mon, 18 Oct 2004 10:47:59 +0000 (06:47 -0400)
committerLen Brown <lenb@dhcppc3.>
Mon, 18 Oct 2004 10:47:59 +0000 (06:47 -0400)
http://bugzilla.kernel.org/show_bug.cgi?id=3390

drivers/acpi/sleep/main.c

index 7b87041281e487d068a1a244fb6632922a4a29e0..38c13f6897729bec78bc203ba3ea572bd3527cc2 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * sleep.c - ACPI sleep support.
  *
+ * Copyright (c) 2004 David Shaohua Li <shaohua.li@intel.com>
  * Copyright (c) 2000-2003 Patrick Mochel
  * Copyright (c) 2003 Open Source Development Lab
  *
@@ -13,6 +14,7 @@
 #include <linux/dmi.h>
 #include <linux/device.h>
 #include <linux/suspend.h>
+#include <asm/io.h>
 #include <acpi/acpi_bus.h>
 #include <acpi/acpi_drivers.h>
 #include "sleep.h"
@@ -56,7 +58,8 @@ static int acpi_pm_prepare(u32 pm_state)
                if (!acpi_wakeup_address)
                        return -EFAULT;
                acpi_set_firmware_waking_vector(
-                       (acpi_physical_address) acpi_wakeup_address);
+                       (acpi_physical_address) virt_to_phys(
+                               (void *)acpi_wakeup_address));
        }
        ACPI_FLUSH_CPU_CACHE();
        acpi_enable_wakeup_device_prep(acpi_state);