diff options
author | Björn Steinbrink <B.Steinbrink@gmx.de> | 2007-06-16 13:16:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-16 16:16:15 -0400 |
commit | da88ba17de990a4b0d18ecde2c40355700888750 (patch) | |
tree | 2783192afd8c7688ce5715346fafea33b185d0a4 | |
parent | 2f41dddbbd7193fb5cdae0a24db4d378d56885fd (diff) |
perfctr-watchdog: fix interchanged parameters to release_{evntsel,perfctr}_nmi
Fix oops triggered during: echo 0 > /proc/sys/kernel/nmi_watchdog
The culprit seems to be 09198e68501a7e34737cd9264d266f42429abcdc:
[PATCH] i386: Clean up NMI watchdog code
In two places, the parameters to release_{evntsel,perfctr}_nmi
got interchanged during the cleanup.
Fix interchanged parameters to release_{evntsel,perfctr}_nmi.
Signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
Cc: Stephane Eranian <eranian@hpl.hp.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/i386/kernel/cpu/perfctr-watchdog.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/arch/i386/kernel/cpu/perfctr-watchdog.c b/arch/i386/kernel/cpu/perfctr-watchdog.c index 98488f997da..f0b67630b90 100644 --- a/arch/i386/kernel/cpu/perfctr-watchdog.c +++ b/arch/i386/kernel/cpu/perfctr-watchdog.c | |||
@@ -276,8 +276,8 @@ static int single_msr_reserve(void) | |||
276 | 276 | ||
277 | static void single_msr_unreserve(void) | 277 | static void single_msr_unreserve(void) |
278 | { | 278 | { |
279 | release_evntsel_nmi(wd_ops->perfctr); | 279 | release_evntsel_nmi(wd_ops->evntsel); |
280 | release_perfctr_nmi(wd_ops->evntsel); | 280 | release_perfctr_nmi(wd_ops->perfctr); |
281 | } | 281 | } |
282 | 282 | ||
283 | static void single_msr_rearm(struct nmi_watchdog_ctlblk *wd, unsigned nmi_hz) | 283 | static void single_msr_rearm(struct nmi_watchdog_ctlblk *wd, unsigned nmi_hz) |
@@ -475,10 +475,10 @@ static void p4_unreserve(void) | |||
475 | { | 475 | { |
476 | #ifdef CONFIG_SMP | 476 | #ifdef CONFIG_SMP |
477 | if (smp_num_siblings > 1) | 477 | if (smp_num_siblings > 1) |
478 | release_evntsel_nmi(MSR_P4_IQ_PERFCTR1); | 478 | release_perfctr_nmi(MSR_P4_IQ_PERFCTR1); |
479 | #endif | 479 | #endif |
480 | release_evntsel_nmi(MSR_P4_IQ_PERFCTR0); | 480 | release_evntsel_nmi(MSR_P4_CRU_ESCR0); |
481 | release_perfctr_nmi(MSR_P4_CRU_ESCR0); | 481 | release_perfctr_nmi(MSR_P4_IQ_PERFCTR0); |
482 | } | 482 | } |
483 | 483 | ||
484 | static void p4_rearm(struct nmi_watchdog_ctlblk *wd, unsigned nmi_hz) | 484 | static void p4_rearm(struct nmi_watchdog_ctlblk *wd, unsigned nmi_hz) |