Messages in this thread Patch in this message | | | Date | Tue, 24 Jun 2014 15:24:39 +0200 | From | Borislav Petkov <> | Subject | [GIT PULL] 2 RAS fixes for 3.17, refreshed |
| |
On Sun, Jun 22, 2014 at 06:46:03PM +0200, Borislav Petkov wrote: > Hi guys, > > please queue this for 3.17. We had it ready earlier but decided to delay > it for an extra testing period.
Actually, ignore that one. Here's a new pull request adding a fix for an issue BorisO reported. All non-critical stuff for 3.17.
Please pull, thanks.
--- The following changes since commit a497c3ba1d97fc69c1e78e7b96435ba8c2cb42ee:
Linux 3.16-rc2 (2014-06-21 19:02:54 -1000)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras.git tags/ras_for_3.17
for you to fetch changes up to 27c934158c5be0bebfb2970da521b9d9efc0058b:
x86, MCE: Robustify mcheck_init_device (2014-06-24 15:17:01 +0200)
---------------------------------------------------------------- CPU_POST_DEAD is one of thorns in the path to getting CPU hotplug seriously cleaned up. Kill its incarnation here in the MCE code.
Also, robustify mcheck_init_device() wrt CPU hotplug.
---------------------------------------------------------------- Borislav Petkov (2): x86, MCE: Kill CPU_POST_DEAD x86, MCE: Robustify mcheck_init_device
arch/x86/kernel/cpu/mcheck/mce.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index bb92f38153b2..4fc57975acc1 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -2385,6 +2385,10 @@ mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) threshold_cpu_callback(action, cpu); mce_device_remove(cpu); mce_intel_hcpu_update(cpu); + + /* intentionally ignoring frozen here */ + if (!(action & CPU_TASKS_FROZEN)) + cmci_rediscover(); break; case CPU_DOWN_PREPARE: smp_call_function_single(cpu, mce_disable_cpu, &action, 1); @@ -2396,11 +2400,6 @@ mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) break; } - if (action == CPU_POST_DEAD) { - /* intentionally ignoring frozen here */ - cmci_rediscover(); - } - return NOTIFY_OK; } @@ -2451,6 +2450,12 @@ static __init int mcheck_init_device(void) for_each_online_cpu(i) { err = mce_device_create(i); if (err) { + /* + * Register notifier anyway (and do not unreg it) so + * that we don't leave undeleted timers, see notifier + * callback above. + */ + __register_hotcpu_notifier(&mce_cpu_notifier); cpu_notifier_register_done(); goto err_device_create; } @@ -2471,10 +2476,6 @@ static __init int mcheck_init_device(void) err_register: unregister_syscore_ops(&mce_syscore_ops); - cpu_notifier_register_begin(); - __unregister_hotcpu_notifier(&mce_cpu_notifier); - cpu_notifier_register_done(); - err_device_create: /* * We didn't keep track of which devices were created above, but -- Regards/Gruss, Boris.
Sent from a fat crate under my desk. Formatting is fine. --
| |