diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2011-04-18 10:00:21 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-04-19 13:14:13 -0400 |
commit | 7b70bd3441437b7bc04fc9d321e17c8ed0e8f958 (patch) | |
tree | 4fc610ccefebf7688adc9b71029fbd36390a6c35 /arch/x86/kernel/cpu | |
parent | f0e615c3cb72b42191b558c130409335812621d8 (diff) |
x86, MCE: Do not taint when handling correctable errors
Correctable errors are considered something rather normal on
modern hardware these days. Even more importantly, correctable
errors mean exactly that - they've been corrected by the
hardware - and there's no need to taint the kernel since
execution hasn't been compromised so far.
Also, drop tainting in the thermal throttling code for a similar
reason: crossing a thermal threshold does not mean corruption.
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Acked-by: Nagananda Chumbalkar <Nagananda.Chumbalkar@hp.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Russ Anderson <rja@sgi.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/1303135222-17118-1-git-send-email-bp@amd64.org
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r-- | arch/x86/kernel/cpu/mcheck/mce.c | 1 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/mcheck/therm_throt.c | 3 |
2 files changed, 0 insertions, 4 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index 3385ea26f684..68e230327d65 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c | |||
@@ -590,7 +590,6 @@ void machine_check_poll(enum mcp_flags flags, mce_banks_t *b) | |||
590 | if (!(flags & MCP_DONTLOG) && !mce_dont_log_ce) { | 590 | if (!(flags & MCP_DONTLOG) && !mce_dont_log_ce) { |
591 | mce_log(&m); | 591 | mce_log(&m); |
592 | atomic_notifier_call_chain(&x86_mce_decoder_chain, 0, &m); | 592 | atomic_notifier_call_chain(&x86_mce_decoder_chain, 0, &m); |
593 | add_taint(TAINT_MACHINE_CHECK); | ||
594 | } | 593 | } |
595 | 594 | ||
596 | /* | 595 | /* |
diff --git a/arch/x86/kernel/cpu/mcheck/therm_throt.c b/arch/x86/kernel/cpu/mcheck/therm_throt.c index 6f8c5e9da97f..5846a797b970 100644 --- a/arch/x86/kernel/cpu/mcheck/therm_throt.c +++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c | |||
@@ -187,8 +187,6 @@ static int therm_throt_process(bool new_event, int event, int level) | |||
187 | this_cpu, | 187 | this_cpu, |
188 | level == CORE_LEVEL ? "Core" : "Package", | 188 | level == CORE_LEVEL ? "Core" : "Package", |
189 | state->count); | 189 | state->count); |
190 | |||
191 | add_taint(TAINT_MACHINE_CHECK); | ||
192 | return 1; | 190 | return 1; |
193 | } | 191 | } |
194 | if (old_event) { | 192 | if (old_event) { |
@@ -393,7 +391,6 @@ static void unexpected_thermal_interrupt(void) | |||
393 | { | 391 | { |
394 | printk(KERN_ERR "CPU%d: Unexpected LVT thermal interrupt!\n", | 392 | printk(KERN_ERR "CPU%d: Unexpected LVT thermal interrupt!\n", |
395 | smp_processor_id()); | 393 | smp_processor_id()); |
396 | add_taint(TAINT_MACHINE_CHECK); | ||
397 | } | 394 | } |
398 | 395 | ||
399 | static void (*smp_thermal_vector)(void) = unexpected_thermal_interrupt; | 396 | static void (*smp_thermal_vector)(void) = unexpected_thermal_interrupt; |