diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-08-14 15:13:47 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-08-14 15:13:47 +0200 |
commit | 881b374705f352725ba1f558968ef34c17ba900e (patch) | |
tree | d7286c00d109db65662af1435fe3b5c8868814d2 /arch/x86/kernel/apic_32.c | |
parent | c83d12806b6185131ece682de8696d8cfb78df69 (diff) | |
parent | d4c63ec060f3315653c0ae5bc3a7fe2419a2282f (diff) |
Merge branch 'x86/apic' into x86/core
Diffstat (limited to 'arch/x86/kernel/apic_32.c')
-rw-r--r-- | arch/x86/kernel/apic_32.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c index 84318edad8fb..12b154822bce 100644 --- a/arch/x86/kernel/apic_32.c +++ b/arch/x86/kernel/apic_32.c @@ -205,11 +205,15 @@ EXPORT_SYMBOL_GPL(apic_ops); */ void __cpuinit enable_NMI_through_LVT0(void) { - unsigned int v = APIC_DM_NMI; + unsigned int v; + + /* unmask and set to NMI */ + v = APIC_DM_NMI; - /* Level triggered for 82489DX */ + /* Level triggered for 82489DX (32bit mode) */ if (!lapic_is_integrated()) v |= APIC_LVT_LEVEL_TRIGGER; + apic_write(APIC_LVT0, v); } @@ -226,9 +230,13 @@ int get_physical_broadcast(void) */ int lapic_get_maxlvt(void) { - unsigned int v = apic_read(APIC_LVR); + unsigned int v; - /* 82489DXs do not report # of LVT entries. */ + v = apic_read(APIC_LVR); + /* + * - we always have APIC integrated on 64bit mode + * - 82489DXs do not report # of LVT entries + */ return APIC_INTEGRATED(GET_APIC_VERSION(v)) ? GET_APIC_MAXLVT(v) : 2; } |