From 27f372c310f45ba90a548850864eabd3c9e3d96b Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Thu, 24 Jul 2008 13:52:29 +0200 Subject: [PATCH] --- yaml --- r: 112703 b: refs/heads/master c: d4c63ec060f3315653c0ae5bc3a7fe2419a2282f h: refs/heads/master i: 112701: 54689e8d75e2ae58c2ed986151619d9bf19b7255 112699: b51ccd3aa5d048f9d6543430b0dbbabc7a8944af 112695: e41a5e9fffa2ca352208192b9ec9af5010cc2931 112687: 768754be1cab389e6966c5e0f9a266cc1e04c85f 112671: 7f8936f2f8a577618b8b2b96aad6b0aefafc7bc5 112639: 6447e5ac2a59007a7babd51b1271b0a4927ecb29 v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/apic_32.c | 8 ++++++-- trunk/arch/x86/kernel/apic_64.c | 5 +++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 6e3cac03fdc7..12b9d91b2d7d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 36a028de785c6e6f15ac84f8b3b087b89137ea26 +refs/heads/master: d4c63ec060f3315653c0ae5bc3a7fe2419a2282f diff --git a/trunk/arch/x86/kernel/apic_32.c b/trunk/arch/x86/kernel/apic_32.c index 447dd8c5c0e9..01708f128eee 100644 --- a/trunk/arch/x86/kernel/apic_32.c +++ b/trunk/arch/x86/kernel/apic_32.c @@ -172,11 +172,15 @@ u32 safe_apic_wait_icr_idle(void) */ 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); } diff --git a/trunk/arch/x86/kernel/apic_64.c b/trunk/arch/x86/kernel/apic_64.c index 4fa2a8620c26..7615b4b9c3f3 100644 --- a/trunk/arch/x86/kernel/apic_64.c +++ b/trunk/arch/x86/kernel/apic_64.c @@ -150,6 +150,11 @@ void __cpuinit enable_NMI_through_LVT0(void) /* unmask and set to NMI */ v = APIC_DM_NMI; + + /* Level triggered for 82489DX (32bit mode) */ + if (!lapic_is_integrated()) + v |= APIC_LVT_LEVEL_TRIGGER; + apic_write(APIC_LVT0, v); }