Commit bcf8951f authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'x86-fixes-for-linus' of...

Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86, mce: fix ifdef for 64bit thermal apic vector clear on shutdown
  x86, mce: use force_sig_info to kill process in machine check
  x86, mce: reinitialize per cpu features on resume
  x86, rcu: fix strange load average and ksoftirqd behavior
parents f54b2fe4 07db1c14
...@@ -862,7 +862,7 @@ void clear_local_APIC(void) ...@@ -862,7 +862,7 @@ void clear_local_APIC(void)
} }
/* lets not touch this if we didn't frob it */ /* lets not touch this if we didn't frob it */
#if defined(CONFIG_X86_MCE_P4THERMAL) || defined(X86_MCE_INTEL) #if defined(CONFIG_X86_MCE_P4THERMAL) || defined(CONFIG_X86_MCE_INTEL)
if (maxlvt >= 5) { if (maxlvt >= 5) {
v = apic_read(APIC_LVTTHMR); v = apic_read(APIC_LVTTHMR);
apic_write(APIC_LVTTHMR, v | APIC_LVT_MASKED); apic_write(APIC_LVTTHMR, v | APIC_LVT_MASKED);
......
...@@ -295,11 +295,11 @@ void do_machine_check(struct pt_regs * regs, long error_code) ...@@ -295,11 +295,11 @@ void do_machine_check(struct pt_regs * regs, long error_code)
* If we know that the error was in user space, send a * If we know that the error was in user space, send a
* SIGBUS. Otherwise, panic if tolerance is low. * SIGBUS. Otherwise, panic if tolerance is low.
* *
* do_exit() takes an awful lot of locks and has a slight * force_sig() takes an awful lot of locks and has a slight
* risk of deadlocking. * risk of deadlocking.
*/ */
if (user_space) { if (user_space) {
do_exit(SIGBUS); force_sig(SIGBUS, current);
} else if (panic_on_oops || tolerant < 2) { } else if (panic_on_oops || tolerant < 2) {
mce_panic("Uncorrected machine check", mce_panic("Uncorrected machine check",
&panicm, mcestart); &panicm, mcestart);
...@@ -734,6 +734,7 @@ __setup("mce=", mcheck_enable); ...@@ -734,6 +734,7 @@ __setup("mce=", mcheck_enable);
static int mce_resume(struct sys_device *dev) static int mce_resume(struct sys_device *dev)
{ {
mce_init(NULL); mce_init(NULL);
mce_cpu_features(&current_cpu_data);
return 0; return 0;
} }
......
...@@ -104,9 +104,6 @@ void cpu_idle(void) ...@@ -104,9 +104,6 @@ void cpu_idle(void)
check_pgt_cache(); check_pgt_cache();
rmb(); rmb();
if (rcu_pending(cpu))
rcu_check_callbacks(cpu, 0);
if (cpu_is_offline(cpu)) if (cpu_is_offline(cpu))
play_dead(); play_dead();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment