|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-unstable] x86: fix dom0 S3 when x2apic is used.
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1268910145 0
# Node ID 7751288b1386e530f65c5a2ea3e1616bb50e34ef
# Parent 84c563da39c81ba0fe32aab37835c2ba54811319
x86: fix dom0 S3 when x2apic is used.
1) Some variables and functions in xen/arch/x86/genapic/x2apic.c
should not be marked with __init* as they will be used during s3
resume;
2) In do_suspend_lowlevel -> restore_rest_processor_state ->
mcheck_init, lapic is accessed, but x2apic hasn't been re-enabled yet
(x2apic is re-enabled() in device_power_up -> lapic_resume). The patch
moves mcheck_init to a later place.
Signed-off-by: Dexuan Cui <dexuan.cui@xxxxxxxxx>
---
xen/arch/x86/acpi/power.c | 2 ++
xen/arch/x86/acpi/suspend.c | 1 -
xen/arch/x86/genapic/x2apic.c | 8 ++++----
3 files changed, 6 insertions(+), 5 deletions(-)
diff -r 84c563da39c8 -r 7751288b1386 xen/arch/x86/acpi/power.c
--- a/xen/arch/x86/acpi/power.c Thu Mar 18 07:44:21 2010 +0000
+++ b/xen/arch/x86/acpi/power.c Thu Mar 18 11:02:25 2010 +0000
@@ -207,6 +207,8 @@ static int enter_state(u32 state)
device_power_up();
+ mcheck_init(&boot_cpu_data);
+
printk(XENLOG_INFO "Finishing wakeup from ACPI S%d state.\n", state);
if ( (state == ACPI_STATE_S3) && error )
diff -r 84c563da39c8 -r 7751288b1386 xen/arch/x86/acpi/suspend.c
--- a/xen/arch/x86/acpi/suspend.c Thu Mar 18 07:44:21 2010 +0000
+++ b/xen/arch/x86/acpi/suspend.c Thu Mar 18 11:02:25 2010 +0000
@@ -82,5 +82,4 @@ void restore_rest_processor_state(void)
wrmsrl(MSR_IA32_CR_PAT, host_pat);
mtrr_bp_restore();
- mcheck_init(&boot_cpu_data);
}
diff -r 84c563da39c8 -r 7751288b1386 xen/arch/x86/genapic/x2apic.c
--- a/xen/arch/x86/genapic/x2apic.c Thu Mar 18 07:44:21 2010 +0000
+++ b/xen/arch/x86/genapic/x2apic.c Thu Mar 18 11:02:25 2010 +0000
@@ -23,19 +23,19 @@
#include <xen/smp.h>
#include <asm/mach-default/mach_mpparse.h>
-static int __initdata x2apic = 1;
+static int x2apic = 1;
boolean_param("x2apic", x2apic);
-static int __initdata x2apic_phys; /* By default we use logical cluster mode.
*/
+static int x2apic_phys; /* By default we use logical cluster mode. */
boolean_param("x2apic_phys", x2apic_phys);
-static int __init probe_x2apic_phys(void)
+static int probe_x2apic_phys(void)
{
return x2apic && x2apic_phys && x2apic_is_available() &&
iommu_supports_eim();
}
-static int __init probe_x2apic_cluster(void)
+static int probe_x2apic_cluster(void)
{
return x2apic && !x2apic_phys && x2apic_is_available() &&
iommu_supports_eim();
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-unstable] x86: fix dom0 S3 when x2apic is used.,
Xen patchbot-unstable <=
|
|
|
|
|