aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/apic.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-09-07 13:51:37 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-09-07 13:51:37 +0100
commit611d7859a036dc2f9c67d697cbecc95765e41bc1 (patch)
tree8712aa792e8acb10eca90aeb5272b6fdeb63f3b9 /xen/arch/x86/apic.c
parent2e0626fb1cf865bfd5b21def2d6398e94156f2cf (diff)
downloadxen-611d7859a036dc2f9c67d697cbecc95765e41bc1.tar.gz
xen-611d7859a036dc2f9c67d697cbecc95765e41bc1.tar.bz2
xen-611d7859a036dc2f9c67d697cbecc95765e41bc1.zip
x86: Some cleanups for apic_write, apic_read, apic_wrmsr, apic_rdmsr
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Diffstat (limited to 'xen/arch/x86/apic.c')
-rw-r--r--xen/arch/x86/apic.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/xen/arch/x86/apic.c b/xen/arch/x86/apic.c
index ba6b0dbb3d..a590bdfef8 100644
--- a/xen/arch/x86/apic.c
+++ b/xen/arch/x86/apic.c
@@ -627,8 +627,7 @@ int lapic_suspend(void)
apic_pm_state.apic_id = apic_read(APIC_ID);
apic_pm_state.apic_taskpri = apic_read(APIC_TASKPRI);
apic_pm_state.apic_ldr = apic_read(APIC_LDR);
- if ( !x2apic_enabled )
- apic_pm_state.apic_dfr = apic_read(APIC_DFR);
+ apic_pm_state.apic_dfr = apic_read(APIC_DFR);
apic_pm_state.apic_spiv = apic_read(APIC_SPIV);
apic_pm_state.apic_lvtt = apic_read(APIC_LVTT);
apic_pm_state.apic_lvtpc = apic_read(APIC_LVTPC);
@@ -654,7 +653,7 @@ int lapic_resume(void)
{
unsigned int l, h;
unsigned long flags;
- int maxlvt = get_maxlvt();
+ int maxlvt;
if (!apic_pm_state.active)
return 0;
@@ -679,8 +678,7 @@ int lapic_resume(void)
apic_write(APIC_LVTERR, ERROR_APIC_VECTOR | APIC_LVT_MASKED);
apic_write(APIC_ID, apic_pm_state.apic_id);
- if ( !x2apic_enabled )
- apic_write(APIC_DFR, apic_pm_state.apic_dfr);
+ apic_write(APIC_DFR, apic_pm_state.apic_dfr);
apic_write(APIC_LDR, apic_pm_state.apic_ldr);
apic_write(APIC_TASKPRI, apic_pm_state.apic_taskpri);
apic_write(APIC_SPIV, apic_pm_state.apic_spiv);
@@ -688,6 +686,7 @@ int lapic_resume(void)
apic_write(APIC_LVT1, apic_pm_state.apic_lvt1);
apic_write(APIC_LVTTHMR, apic_pm_state.apic_thmr);
+ maxlvt = get_maxlvt();
if (maxlvt >= 6) {
apic_write(APIC_CMCI, apic_pm_state.apic_lvtcmci);
}