Daniel J Blueman
0c510cc83b
EDAC, amd64_edac: Prevent OOPS with >16 memory controllers
When DRAM errors occur on memory controllers after EDAC_MAX_MCS (16),
the kernel fatally dereferences unallocated structures, see splat below;
this occurs on at least NumaConnect systems.
Fix by checking if a memory controller info structure was found.
BUG: unable to handle kernel NULL pointer dereference at 0000000000000320
IP: [<ffffffff819f714f>] decode_bus_error+0x2f/0x2b0
PGD 2f8b5a3067 PUD 2f8b5a2067 PMD 0
Oops: 0000 [#2] SMP
Modules linked in:
CPU: 224 PID: 11930 Comm: stream_c.exe.gn Tainted: G D 3.19.0 #1
Hardware name: Supermicro H8QGL/H8QGL, BIOS 3.5b 01/28/2015
task: ffff8807dbfb8c00 ti: ffff8807dd16c000 task.ti: ffff8807dd16c000
RIP: 0010:[<ffffffff819f714f>] [<ffffffff819f714f>] decode_bus_error+0x2f/0x2b0
RSP: 0000:ffff8907dfc03c48 EFLAGS: 00010297
RAX: 0000000000000001 RBX: 9c67400010080a13 RCX: 0000000000001dc6
RDX: 000000001dc61dc6 RSI: ffff8907dfc03df0 RDI: 000000000000001c
RBP: ffff8907dfc03ce8 R08: 0000000000000000 R09: 0000000000000022
R10: ffff891fffa30380 R11: 00000000001cfc90 R12: 0000000000000008
R13: 0000000000000000 R14: 000000000000001c R15: 00009c6740001000
FS: 00007fa97ee18700(0000) GS:ffff8907dfc00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000320 CR3: 0000003f889b8000 CR4: 00000000000407e0
Stack:
0000000000000000 ffff8907dfc03df0 0000000000000008 9c67400010080a13
000000000000001c 00009c6740001000 ffff8907dfc03c88 ffffffff810e4f9a
ffff8907dfc03ce8 ffffffff81b375b9 0000000000000000 0000000000000010
Call Trace:
<IRQ>
? vprintk_default
? printk
amd_decode_mce
notifier_call_chain
atomic_notifier_call_chain
mce_log
machine_check_poll
mce_timer_fn
? mce_cpu_restart
call_timer_fn.isra.29
run_timer_softirq
__do_softirq
irq_exit
smp_apic_timer_interrupt
apic_timer_interrupt
<EOI>
? down_read_trylock
__do_page_fault
? __schedule
do_page_fault
page_fault
Signed-off-by: Daniel J Blueman <daniel@numascale.com>
Link: http://lkml.kernel.org/r/1424144078-24589-1-git-send-email-daniel@numascale.com
Cc: stable@vger.kernel.org
[ Boris: massage commit message ]
Signed-off-by: Borislav Petkov <bp@suse.de>
2015-02-17 10:32:12 +01:00
..
2015-02-03 14:29:43 +01:00
2014-12-14 16:43:47 -08:00
2015-01-19 14:11:23 -05:00
2014-12-14 16:10:09 -08:00
2014-12-29 21:24:00 +01:00
2014-12-11 17:56:37 -08:00
2015-01-28 16:12:02 +03:00
2014-12-15 13:23:09 -05:00
2015-01-23 14:08:13 -08:00
2014-12-30 13:34:36 -06:00
2015-01-17 11:33:57 -08:00
2015-01-25 17:47:34 -08:00
2014-12-29 21:23:41 +01:00
2014-12-29 21:23:41 +01:00
2014-12-14 16:10:09 -08:00
2015-01-13 23:07:58 +05:30
2015-02-17 10:32:12 +01:00
2014-12-14 16:43:47 -08:00
2014-12-10 20:53:21 +01:00
2014-12-14 16:10:09 -08:00
2015-01-30 10:29:33 +01:00
2015-02-05 10:39:00 +10:00
2015-01-09 14:41:01 +01:00
2014-12-15 17:33:47 -08:00
2014-12-14 16:43:47 -08:00
2015-01-24 14:16:22 +01:00
2015-01-30 17:58:43 +01:00
2014-12-14 16:10:09 -08:00
2015-01-08 17:59:04 -08:00
2015-02-06 00:54:33 -08:00
2015-02-01 13:16:40 -08:00
2015-01-26 13:41:07 +01:00
2015-02-06 08:28:54 -08:00
2015-02-02 19:33:18 -08:00
2015-01-13 13:49:01 -08:00
2014-12-09 16:32:32 +02:00
2014-12-19 19:32:47 +01:00
2014-12-14 16:10:09 -08:00
2015-01-09 15:46:37 -08:00
2015-02-03 19:54:57 -08:00
2015-01-24 14:34:54 -08:00
2014-12-17 09:59:26 -08:00
2015-01-21 18:29:44 +12:00
2015-01-17 08:18:08 +13:00
2015-01-14 09:47:19 +01:00
2014-12-17 09:59:26 -08:00
2015-02-05 00:24:08 -08:00
2014-12-18 20:28:33 -08:00
2015-01-23 13:10:07 +00:00
2015-01-16 10:04:43 -06:00
2014-12-14 16:43:47 -08:00
2015-02-03 20:28:02 -06:00
2014-12-14 16:43:47 -08:00
2014-12-23 15:44:32 +05:30
2015-01-26 09:13:36 +01:00
2015-01-23 11:10:32 -08:00
2014-12-18 20:28:33 -08:00
2014-12-17 02:35:42 +01:00
2014-12-17 10:10:51 -08:00
2015-01-16 12:05:35 +00:00
2014-12-14 16:10:09 -08:00
2015-01-16 19:11:31 -08:00
2015-01-26 13:37:19 -08:00
2015-01-25 23:38:16 -08:00
2015-02-05 11:17:15 -08:00
2014-12-05 03:08:24 +01:00
2014-12-15 15:52:01 -08:00
2015-02-04 20:57:31 +00:00
2014-12-11 17:56:37 -08:00
2015-01-30 19:44:56 -08:00
2015-01-09 15:25:58 -08:00
2015-01-15 19:20:26 +13:00
2015-01-09 13:46:02 -08:00
2014-12-14 16:43:47 -08:00
2015-01-26 19:13:41 -08:00
2015-01-07 10:29:11 -07:00
2015-02-04 13:59:31 -08:00
2015-01-13 15:13:45 +02:00
2015-01-06 16:35:36 +02:00
2014-12-14 16:43:47 -08:00
2015-01-21 14:52:34 +01:00
2014-12-18 05:56:29 -08:00
2015-01-25 20:26:42 +08:00
2014-12-22 11:47:37 +02:00