From 9101f7c9111505d4aec457a31cca862b856c9f4b Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 17 Apr 2018 14:48:19 +0200 Subject: [PATCH] drop 4.15 mce patch --- queue-4.15/series | 1 - ...md-enumerate-reserved-smca-bank-type.patch | 123 ------------------ ...dress-from-already-initialized-block.patch | 6 +- 3 files changed, 3 insertions(+), 127 deletions(-) delete mode 100644 queue-4.15/x86-mce-amd-edac-mce_amd-enumerate-reserved-smca-bank-type.patch diff --git a/queue-4.15/series b/queue-4.15/series index 1950435d84f..9047905bfbb 100644 --- a/queue-4.15/series +++ b/queue-4.15/series @@ -19,7 +19,6 @@ pci-hv-serialize-the-present-and-eject-work-items.patch pci-hv-fix-2-hang-issues-in-hv_compose_msi_msg.patch kvm-ppc-book3s-hv-trace_tlbie-must-not-be-called-in-realmode.patch perf-core-fix-use-after-free-in-uprobe_perf_close.patch -x86-mce-amd-edac-mce_amd-enumerate-reserved-smca-bank-type.patch x86-mce-amd-get-address-from-already-initialized-block.patch hwmon-ina2xx-fix-access-to-uninitialized-mutex.patch ath9k-protect-queue-draining-by-rcu_read_lock.patch diff --git a/queue-4.15/x86-mce-amd-edac-mce_amd-enumerate-reserved-smca-bank-type.patch b/queue-4.15/x86-mce-amd-edac-mce_amd-enumerate-reserved-smca-bank-type.patch deleted file mode 100644 index 3db33395a34..00000000000 --- a/queue-4.15/x86-mce-amd-edac-mce_amd-enumerate-reserved-smca-bank-type.patch +++ /dev/null @@ -1,123 +0,0 @@ -From 68627a697c195937672ce07683094c72b1174786 Mon Sep 17 00:00:00 2001 -From: Yazen Ghannam -Date: Wed, 21 Feb 2018 11:18:58 +0100 -Subject: x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type - -From: Yazen Ghannam - -commit 68627a697c195937672ce07683094c72b1174786 upstream. - -Currently, bank 4 is reserved on Fam17h, so we chose not to initialize -bank 4 in the smca_banks array. This means that when we check if a bank -is initialized, like during boot or resume, we will see that bank 4 is -not initialized and try to initialize it. - -This will cause a call trace, when resuming from suspend, due to -rdmsr_*on_cpu() calls in the init path. The rdmsr_*on_cpu() calls issue -an IPI but we're running with interrupts disabled. This triggers: - - WARNING: CPU: 0 PID: 11523 at kernel/smp.c:291 smp_call_function_single+0xdc/0xe0 - ... - -Reserved banks will be read-as-zero, so their MCA_IPID register will be -zero. So, like the smca_banks array, the threshold_banks array will not -have an entry for a reserved bank since all its MCA_MISC* registers will -be zero. - -Enumerate a "Reserved" bank type that matches on a HWID_MCATYPE of 0,0. - -Use the "Reserved" type when checking if a bank is reserved. It's -possible that other bank numbers may be reserved on future systems. - -Don't try to find the block address on reserved banks. - -Signed-off-by: Yazen Ghannam -Signed-off-by: Borislav Petkov -Cc: # 4.14.x -Cc: Borislav Petkov -Cc: Linus Torvalds -Cc: Peter Zijlstra -Cc: Thomas Gleixner -Cc: Tony Luck -Cc: linux-edac -Link: http://lkml.kernel.org/r/20180221101900.10326-7-bp@alien8.de -Signed-off-by: Ingo Molnar -Signed-off-by: Greg Kroah-Hartman - ---- - arch/x86/include/asm/mce.h | 1 + - arch/x86/kernel/cpu/mcheck/mce_amd.c | 7 +++++++ - drivers/edac/mce_amd.c | 11 +++++++---- - 3 files changed, 15 insertions(+), 4 deletions(-) - ---- a/arch/x86/include/asm/mce.h -+++ b/arch/x86/include/asm/mce.h -@@ -346,6 +346,7 @@ enum smca_bank_types { - SMCA_IF, /* Instruction Fetch */ - SMCA_L2_CACHE, /* L2 Cache */ - SMCA_DE, /* Decoder Unit */ -+ SMCA_RESERVED, /* Reserved */ - SMCA_EX, /* Execution Unit */ - SMCA_FP, /* Floating Point */ - SMCA_L3_CACHE, /* L3 Cache */ ---- a/arch/x86/kernel/cpu/mcheck/mce_amd.c -+++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c -@@ -82,6 +82,7 @@ static struct smca_bank_name smca_names[ - [SMCA_IF] = { "insn_fetch", "Instruction Fetch Unit" }, - [SMCA_L2_CACHE] = { "l2_cache", "L2 Cache" }, - [SMCA_DE] = { "decode_unit", "Decode Unit" }, -+ [SMCA_RESERVED] = { "reserved", "Reserved" }, - [SMCA_EX] = { "execution_unit", "Execution Unit" }, - [SMCA_FP] = { "floating_point", "Floating Point Unit" }, - [SMCA_L3_CACHE] = { "l3_cache", "L3 Cache" }, -@@ -113,6 +114,9 @@ EXPORT_SYMBOL_GPL(smca_get_long_name); - static struct smca_hwid smca_hwid_mcatypes[] = { - /* { bank_type, hwid_mcatype, xec_bitmap } */ - -+ /* Reserved type */ -+ { SMCA_RESERVED, HWID_MCATYPE(0x00, 0x0), 0x0 }, -+ - /* ZN Core (HWID=0xB0) MCA types */ - { SMCA_LS, HWID_MCATYPE(0xB0, 0x0), 0x1FFFEF }, - { SMCA_IF, HWID_MCATYPE(0xB0, 0x1), 0x3FFF }, -@@ -417,6 +421,9 @@ static u32 get_block_address(unsigned in - u32 addr = 0, offset = 0; - - if (mce_flags.smca) { -+ if (smca_get_bank_type(bank) == SMCA_RESERVED) -+ return addr; -+ - if (!block) { - addr = MSR_AMD64_SMCA_MCx_MISC(bank); - } else { ---- a/drivers/edac/mce_amd.c -+++ b/drivers/edac/mce_amd.c -@@ -854,21 +854,24 @@ static void decode_mc6_mce(struct mce *m - static void decode_smca_error(struct mce *m) - { - struct smca_hwid *hwid; -- unsigned int bank_type; -+ enum smca_bank_types bank_type; - const char *ip_name; - u8 xec = XEC(m->status, xec_mask); - - if (m->bank >= ARRAY_SIZE(smca_banks)) - return; - -- if (x86_family(m->cpuid) >= 0x17 && m->bank == 4) -- pr_emerg(HW_ERR "Bank 4 is reserved on Fam17h.\n"); -- - hwid = smca_banks[m->bank].hwid; - if (!hwid) - return; - - bank_type = hwid->bank_type; -+ -+ if (bank_type == SMCA_RESERVED) { -+ pr_emerg(HW_ERR "Bank %d is reserved.\n", m->bank); -+ return; -+ } -+ - ip_name = smca_get_long_name(bank_type); - - pr_emerg(HW_ERR "%s Extended Error Code: %d\n", ip_name, xec); diff --git a/queue-4.15/x86-mce-amd-get-address-from-already-initialized-block.patch b/queue-4.15/x86-mce-amd-get-address-from-already-initialized-block.patch index ebeb9d5b336..2a422b62979 100644 --- a/queue-4.15/x86-mce-amd-get-address-from-already-initialized-block.patch +++ b/queue-4.15/x86-mce-amd-get-address-from-already-initialized-block.patch @@ -39,7 +39,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/arch/x86/kernel/cpu/mcheck/mce_amd.c +++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c -@@ -420,6 +420,21 @@ static u32 get_block_address(unsigned in +@@ -416,6 +416,21 @@ static u32 get_block_address(unsigned in { u32 addr = 0, offset = 0; @@ -59,5 +59,5 @@ Signed-off-by: Greg Kroah-Hartman + } + if (mce_flags.smca) { - if (smca_get_bank_type(bank) == SMCA_RESERVED) - return addr; + if (!block) { + addr = MSR_AMD64_SMCA_MCx_MISC(bank); -- 2.47.3