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.
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to