diff options
author | Paul Gortmaker <paul.gortmaker@windriver.com> | 2017-10-31 00:57:11 -0400 |
---|---|---|
committer | Paul Gortmaker <paul.gortmaker@windriver.com> | 2017-10-31 00:57:11 -0400 |
commit | b09a0b6d0a644d7576af204ca280172a68b02dcc (patch) | |
tree | 9ca0632b1daf095ea03f17593f5849cebfc4f816 | |
parent | bd3d9037738bd614e590223157831f97cfc92666 (diff) | |
download | longterm-queue-4.8-b09a0b6d0a644d7576af204ca280172a68b02dcc.tar.gz |
mce: remove notifier patch n/a for 4.8.x
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r-- | queue/series | 1 | ||||
-rw-r--r-- | queue/x86-mce-Make-the-MCE-notifier-a-blocking-one.patch | 125 |
2 files changed, 0 insertions, 126 deletions
diff --git a/queue/series b/queue/series index 25e0673..4e5ccc1 100644 --- a/queue/series +++ b/queue/series @@ -12,7 +12,6 @@ mac80211-reject-ToDS-broadcast-data-frames.patch ubi-upd-Always-flush-after-prepared-for-an-update.patch powerpc-kprobe-Fix-oops-when-kprobed-on-stdu-instruc.patch x86-mce-AMD-Give-a-name-to-MCA-bank-3-when-accessed-.patch -x86-mce-Make-the-MCE-notifier-a-blocking-one.patch device-dax-switch-to-srcu-fix-rcu_read_lock-vs-pte-a.patch Revert-mmc-sdhci-msm-Enable-few-quirks.patch ping-implement-proper-locking.patch diff --git a/queue/x86-mce-Make-the-MCE-notifier-a-blocking-one.patch b/queue/x86-mce-Make-the-MCE-notifier-a-blocking-one.patch deleted file mode 100644 index 716c721..0000000 --- a/queue/x86-mce-Make-the-MCE-notifier-a-blocking-one.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 0dc9c639e6553e39c13b2c0d54c8a1b098cb95e2 Mon Sep 17 00:00:00 2001 -From: Vishal Verma <vishal.l.verma@intel.com> -Date: Tue, 18 Apr 2017 20:42:35 +0200 -Subject: [PATCH] x86/mce: Make the MCE notifier a blocking one - -commit 0dc9c639e6553e39c13b2c0d54c8a1b098cb95e2 upstream. - -The NFIT MCE handler callback (for handling media errors on NVDIMMs) -takes a mutex to add the location of a memory error to a list. But since -the notifier call chain for machine checks (x86_mce_decoder_chain) is -atomic, we get a lockdep splat like: - - BUG: sleeping function called from invalid context at kernel/locking/mutex.c:620 - in_atomic(): 1, irqs_disabled(): 0, pid: 4, name: kworker/0:0 - [..] - Call Trace: - dump_stack - ___might_sleep - __might_sleep - mutex_lock_nested - ? __lock_acquire - nfit_handle_mce - notifier_call_chain - atomic_notifier_call_chain - ? atomic_notifier_call_chain - mce_gen_pool_process - -Convert the notifier to a blocking one which gets to run only in process -context. - -Boris: remove the notifier call in atomic context in print_mce(). For -now, let's print the MCE on the atomic path so that we can make sure -they go out and get logged at least. - -Fixes: 6839a6d96f4e ("nfit: do an ARS scrub on hitting a latent media error") -Reported-by: Ross Zwisler <ross.zwisler@linux.intel.com> -Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> -Acked-by: Tony Luck <tony.luck@intel.com> -Cc: Dan Williams <dan.j.williams@intel.com> -Cc: linux-edac <linux-edac@vger.kernel.org> -Cc: x86-ml <x86@kernel.org> -Cc: <stable@vger.kernel.org> -Link: http://lkml.kernel.org/r/20170411224457.24777-1-vishal.l.verma@intel.com -Signed-off-by: Borislav Petkov <bp@suse.de> -Signed-off-by: Thomas Gleixner <tglx@linutronix.de> - -diff --git a/arch/x86/kernel/cpu/mcheck/mce-genpool.c b/arch/x86/kernel/cpu/mcheck/mce-genpool.c -index 1e5a50c11d3c..217cd4449bc9 100644 ---- a/arch/x86/kernel/cpu/mcheck/mce-genpool.c -+++ b/arch/x86/kernel/cpu/mcheck/mce-genpool.c -@@ -85,7 +85,7 @@ void mce_gen_pool_process(struct work_struct *__unused) - head = llist_reverse_order(head); - llist_for_each_entry_safe(node, tmp, head, llnode) { - mce = &node->mce; -- atomic_notifier_call_chain(&x86_mce_decoder_chain, 0, mce); -+ blocking_notifier_call_chain(&x86_mce_decoder_chain, 0, mce); - gen_pool_free(mce_evt_pool, (unsigned long)node, sizeof(*node)); - } - } -diff --git a/arch/x86/kernel/cpu/mcheck/mce-internal.h b/arch/x86/kernel/cpu/mcheck/mce-internal.h -index 903043e6a62b..19592ba1a320 100644 ---- a/arch/x86/kernel/cpu/mcheck/mce-internal.h -+++ b/arch/x86/kernel/cpu/mcheck/mce-internal.h -@@ -13,7 +13,7 @@ enum severity_level { - MCE_PANIC_SEVERITY, - }; - --extern struct atomic_notifier_head x86_mce_decoder_chain; -+extern struct blocking_notifier_head x86_mce_decoder_chain; - - #define ATTR_LEN 16 - #define INITIAL_CHECK_INTERVAL 5 * 60 /* 5 minutes */ -diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c -index 5accfbdee3f0..af44ebeb593f 100644 ---- a/arch/x86/kernel/cpu/mcheck/mce.c -+++ b/arch/x86/kernel/cpu/mcheck/mce.c -@@ -123,7 +123,7 @@ static void (*quirk_no_way_out)(int bank, struct mce *m, struct pt_regs *regs); - * CPU/chipset specific EDAC code can register a notifier call here to print - * MCE errors in a human-readable form. - */ --ATOMIC_NOTIFIER_HEAD(x86_mce_decoder_chain); -+BLOCKING_NOTIFIER_HEAD(x86_mce_decoder_chain); - - /* Do initial initialization of a struct mce */ - void mce_setup(struct mce *m) -@@ -220,7 +220,7 @@ void mce_register_decode_chain(struct notifier_block *nb) - - WARN_ON(nb->priority > MCE_PRIO_LOWEST && nb->priority < MCE_PRIO_EDAC); - -- atomic_notifier_chain_register(&x86_mce_decoder_chain, nb); -+ blocking_notifier_chain_register(&x86_mce_decoder_chain, nb); - } - EXPORT_SYMBOL_GPL(mce_register_decode_chain); - -@@ -228,7 +228,7 @@ void mce_unregister_decode_chain(struct notifier_block *nb) - { - atomic_dec(&num_notifiers); - -- atomic_notifier_chain_unregister(&x86_mce_decoder_chain, nb); -+ blocking_notifier_chain_unregister(&x86_mce_decoder_chain, nb); - } - EXPORT_SYMBOL_GPL(mce_unregister_decode_chain); - -@@ -321,18 +321,7 @@ static void __print_mce(struct mce *m) - - static void print_mce(struct mce *m) - { -- int ret = 0; -- - __print_mce(m); -- -- /* -- * Print out human-readable details about the MCE error, -- * (if the CPU has an implementation for that) -- */ -- ret = atomic_notifier_call_chain(&x86_mce_decoder_chain, 0, m); -- if (ret == NOTIFY_STOP) -- return; -- - pr_emerg_ratelimited(HW_ERR "Run the above through 'mcelog --ascii'\n"); - } - --- -2.12.0 - |