[oops] [tip:x86/apic] x86/ioapic: Support hot-removal of IOAPICs present during boot

From: Mike Galbraith
Date: Mon Sep 05 2016 - 04:17:57 EST


On Thu, 2016-08-18 at 04:02 -0700, tip-bot for Rui Wang wrote:
> Commit-ID: 584c5c422f6c749ced1e0bc3c6837f650f64e1e1
> Gitweb:
> http://git.kernel.org/tip/584c5c422f6c749ced1e0bc3c6837f650f64e1e1
> Author: Rui Wang <rui.y.wang@xxxxxxxxx>
> AuthorDate: Wed, 17 Aug 2016 16:00:34 +0800
> Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> CommitDate: Thu, 18 Aug 2016 11:45:18 +0200
>
> x86/ioapic: Support hot-removal of IOAPICs present during boot
>
> IOAPICs present during system boot aren't added to ioapic_list,
> thus are unable to be hot-removed. Fix it by calling
> acpi_ioapic_add() during root bus enumeration.

This commit makes tip on my x3550 M3 go boom during boot. Revert the
series, all is well, start re-applying them, box goes boom at this
commit as below. Tree is tip v4.8-rc4-312-g5e7dd767889c.

[ 2.018042] pci 0000:01:00.0: can't claim BAR 6 [mem 0xfffc0000-0xffffffff pref]: no compatible bridge window
[ 2.028010] pci 0000:00:1c.0: BAR 15: assigned [mem 0x90000000-0x901fffff 64bit pref]
[ 2.035837] pci 0000:00:01.0: PCI bridge to [bus 0b-0f]
[ 2.041063] pci 0000:00:01.0: bridge window [mem 0x92000000-0x95ffffff]
[ 2.047852] pci 0000:00:02.0: PCI bridge to [bus 10-14]
[ 2.053082] pci 0000:00:03.0: PCI bridge to [bus 15-19]
[ 2.058312] pci 0000:00:07.0: PCI bridge to [bus 1a-1e]
[ 2.063544] pci 0000:01:00.0: BAR 6: assigned [mem 0x97980000-0x979bffff pref]
[ 2.070766] pci 0000:00:1c.0: PCI bridge to [bus 01-05]
[ 2.075991] pci 0000:00:1c.0: bridge window [io 0x1000-0x1fff]
[ 2.082085] pci 0000:00:1c.0: bridge window [mem 0x97900000-0x979fffff]
[ 2.088871] pci 0000:00:1c.0: bridge window [mem 0x90000000-0x901fffff 64bit pref]
[ 2.096615] pci 0000:06:00.0: PCI bridge to [bus 07]
[ 2.101586] pci 0000:06:00.0: bridge window [mem 0x97000000-0x978fffff]
[ 2.108372] pci 0000:06:00.0: bridge window [mem 0x96000000-0x96ffffff pref]
[ 2.115597] pci 0000:00:1c.4: PCI bridge to [bus 06-0a]
[ 2.120823] pci 0000:00:1c.4: bridge window [mem 0x97000000-0x978fffff]
[ 2.127610] pci 0000:00:1c.4: bridge window [mem 0x96000000-0x96ffffff 64bit pref]
[ 2.135353] pci 0000:00:1e.0: PCI bridge to [bus 1f-23]
[ 2.140655] BUG: unable to handle kernel NULL pointer dereference at 0000000000000018
[ 2.148511] IP: [<ffffffff813e70e7>] acpi_ns_walk_namespace+0x70/0x249
[ 2.155055] PGD 0
[ 2.157087] Oops: 0000 [#1] PREEMPT SMP
[ 2.160920] Dumping ftrace buffer:
[ 2.164322] (ftrace buffer empty)
[ 2.167897] Modules linked in:
[ 2.170970] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.8.0-tip+ #27
[ 2.177317] Hardware name: IBM System x3550 M3 -[7944K3G]-/69Y5698 , BIOS -[D6E150AUS-1.10]- 12/15/2010
[ 2.187044] task: ffff88016ab58000 task.stack: ffffc90000638000
[ 2.192955] RIP: 0010:[<ffffffff813e70e7>] [<ffffffff813e70e7>] acpi_ns_walk_namespace+0x70/0x249
[ 2.201923] RSP: 0000:ffffc9000063bd00 EFLAGS: 00010202
[ 2.207230] RAX: 0000000000000001 RBX: 0000000000000001 RCX: 0000000000000010
[ 2.214356] RDX: 000000100000000f RSI: ffffffff81882810 RDI: 00000000000000c8
[ 2.221482] RBP: ffffc9000063bd50 R08: ffffffff813fcd89 R09: 0000000000000000
[ 2.228606] R10: 0000000000000000 R11: 0000000000000006 R12: 0000000000000000
[ 2.235732] R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000000
[ 2.242858] FS: 0000000000000000(0000) GS:ffff88017fc00000(0000) knlGS:0000000000000000
[ 2.250939] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2.256678] CR2: 0000000000000018 CR3: 0000000001c06000 CR4: 00000000000006f0
[ 2.263804] Stack:
[ 2.265818] 0000000000000000 ffffffff813fcd89 00000001813f5396 ffffffffffffffff
[ 2.273283] 0000000000000006 0000000000000000 00000000ffffffff ffffffff813fcd89
[ 2.280747] 0000000000000000 0000000000000000 ffffc9000063bda8 ffffffff813e7a7d
[ 2.288211] Call Trace:
[ 2.290660] [<ffffffff813fcd89>] ? setup_res+0x94/0x94
[ 2.295879] [<ffffffff813fcd89>] ? setup_res+0x94/0x94
[ 2.301100] [<ffffffff813e7a7d>] acpi_walk_namespace+0xfc/0x14c
[ 2.307103] [<ffffffff81d97356>] ? ras_debugfs_init+0x1b/0x1b
[ 2.312931] [<ffffffff813fd12f>] acpi_ioapic_add+0x39/0x51
[ 2.318498] [<ffffffff81d82b35>] pci_assign_unassigned_resources+0x65/0x6d
[ 2.325452] [<ffffffff81d9736d>] pcibios_assign_resources+0x17/0xb4
[ 2.331800] [<ffffffff81d97356>] ? ras_debugfs_init+0x1b/0x1b
[ 2.337629] [<ffffffff81000450>] do_one_initcall+0x50/0x190
[ 2.343284] [<ffffffff8108e2cb>] ? parse_args+0x27b/0x460
[ 2.348768] [<ffffffff81d43291>] kernel_init_freeable+0x194/0x224
[ 2.354943] [<ffffffff81d429aa>] ? set_debug_rodata+0x12/0x12
[ 2.360774] [<ffffffff81610660>] ? rest_init+0x90/0x90
[ 2.365994] [<ffffffff8161066e>] kernel_init+0xe/0x110
[ 2.371215] [<ffffffff8161c6c5>] ret_from_fork+0x25/0x30
[ 2.376607] Code: b8 4c 89 4d b0 e8 af b5 00 00 49 83 fc ff 4c 0f 44 25 fe a2 c8 00 45 31 ed e8 67 b5 00 00 44 89 f0 c7 45 d4 00 00 00 00 83 e0 01 <4d> 8b 7c 24 18 89 45 cc 4d 85 ff 0f 84 97 01 00 00 85 db 0f 84
[ 2.396735] RIP [<ffffffff813e70e7>] acpi_ns_walk_namespace+0x70/0x249
[ 2.403364] RSP <ffffc9000063bd00>
[ 2.406849] CR2: 0000000000000018
[ 2.410164] ---[ end trace 6cc1410993da3e1d ]---

(gdb) list *acpi_ns_walk_namespace+0x70
0xffffffff813e70e7 is in acpi_ns_walk_namespace (drivers/acpi/acpica/nswalk.c:79).
74
75 if (!child_node) {
76
77 /* It's really the parent's _scope_ that we want */
78
79 return (parent_node->child);
80 }
81
82 /* Otherwise just return the next peer */
83

00:00.0 Host bridge: Intel Corporation 5520 I/O Hub to ESI Port (rev 22)
00:01.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 1 (rev 22)
00:02.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 2 (rev 22)
00:03.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 3 (rev 22)
00:07.0 PCI bridge: Intel Corporation 5520/5500/X58 I/O Hub PCI Express Root Port 7 (rev 22)
00:10.0 PIC: Intel Corporation 7500/5520/5500/X58 Physical and Link Layer Registers Port 0 (rev 22)
00:10.1 PIC: Intel Corporation 7500/5520/5500/X58 Routing and Protocol Layer Registers Port 0 (rev 22)
00:11.0 PIC: Intel Corporation 7500/5520/5500 Physical and Link Layer Registers Port 1 (rev 22)
00:11.1 PIC: Intel Corporation 7500/5520/5500 Routing & Protocol Layer Register Port 1 (rev 22)
00:14.0 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub System Management Registers (rev 22)
00:14.1 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers (rev 22)
00:14.2 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub Control Status and RAS Registers (rev 22)
00:14.3 PIC: Intel Corporation 7500/5520/5500/X58 I/O Hub Throttle Registers (rev 22)
00:15.0 PIC: Intel Corporation 7500/5520/5500/X58 Trusted Execution Technology Registers (rev 22)
00:16.0 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.1 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.2 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.3 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.4 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.5 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.6 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:16.7 System peripheral: Intel Corporation 5520/5500/X58 Chipset QuickData Technology Device (rev 22)
00:1a.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4
00:1a.1 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5
00:1a.7 USB controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2
00:1c.0 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 1
00:1c.4 PCI bridge: Intel Corporation 82801JI (ICH10 Family) PCI Express Root Port 5
00:1d.0 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1
00:1d.1 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2
00:1d.2 USB controller: Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3
00:1d.7 USB controller: Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 90)
00:1f.0 ISA bridge: Intel Corporation 82801JIB (ICH10) LPC Interface Controller
00:1f.2 IDE interface: Intel Corporation 82801JI (ICH10 Family) 4 port SATA IDE Controller #1
00:1f.3 SMBus: Intel Corporation 82801JI (ICH10 Family) SMBus Controller
00:1f.5 IDE interface: Intel Corporation 82801JI (ICH10 Family) 2 port SATA IDE Controller #2
01:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID SAS 2108 [Liberator] (rev 03)
06:00.0 PCI bridge: Vitesse Semiconductor VSC452 [SuperBMC] (rev 01)
07:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200EV
0b:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
0b:00.1 Ethernet controller: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
ff:00.0 Host bridge: Intel Corporation Xeon 5600 Series QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation Xeon 5600 Series QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation Xeon 5600 Series QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation Xeon 5600 Series QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation Xeon 5600 Series Mirror Port Link 0 (rev 02)
ff:02.3 Host bridge: Intel Corporation Xeon 5600 Series Mirror Port Link 1 (rev 02)
ff:02.4 Host bridge: Intel Corporation Xeon 5600 Series QPI Link 1 (rev 02)
ff:02.5 Host bridge: Intel Corporation Xeon 5600 Series QPI Physical 1 (rev 02)
ff:03.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Registers (rev 02)
ff:03.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Target Address Decoder (rev 02)
ff:03.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller RAS Registers (rev 02)
ff:03.4 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Test Registers (rev 02)
ff:04.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Control (rev 02)
ff:04.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Address (rev 02)
ff:04.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Rank (rev 02)
ff:04.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 0 Thermal Control (rev 02)
ff:05.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Control (rev 02)
ff:05.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Address (rev 02)
ff:05.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Rank (rev 02)
ff:05.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 1 Thermal Control (rev 02)
ff:06.0 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Control (rev 02)
ff:06.1 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Address (rev 02)
ff:06.2 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Rank (rev 02)
ff:06.3 Host bridge: Intel Corporation Xeon 5600 Series Integrated Memory Controller Channel 2 Thermal Control (rev 02)