diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-03-18 11:02:25 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-03-18 11:02:25 +0000 |
commit | 7f6331edab97a85e3ce722a5e3442b849db4891f (patch) | |
tree | 13bc1a3b24c542aa98e588ee8a7bd2fd128c5999 /xen/arch/x86/genapic | |
parent | caf500204f0cd52a0e1fb838029e52bafbfd072b (diff) | |
download | xen-7f6331edab97a85e3ce722a5e3442b849db4891f.tar.gz xen-7f6331edab97a85e3ce722a5e3442b849db4891f.tar.bz2 xen-7f6331edab97a85e3ce722a5e3442b849db4891f.zip |
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@intel.com>
Diffstat (limited to 'xen/arch/x86/genapic')
-rw-r--r-- | xen/arch/x86/genapic/x2apic.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/xen/arch/x86/genapic/x2apic.c b/xen/arch/x86/genapic/x2apic.c index 610db8baa0..2cb7835060 100644 --- a/xen/arch/x86/genapic/x2apic.c +++ b/xen/arch/x86/genapic/x2apic.c @@ -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(); |