linux/arch/powerpc/platforms
Anton Blanchard ce47c1c45b powerpc/eeh: Fix oops when probing in early boot
If we take an EEH error early enough, we oops:

Call Trace:
[c000000010483770] [c000000000013ee4] .show_stack+0xd8/0x218 (unreliable)
[c000000010483850] [c000000000658940] .dump_stack+0x28/0x3c
[c0000000104838d0] [c000000000057a68] .eeh_dn_check_failure+0x2b8/0x304
[c000000010483990] [c0000000000259c8] .rtas_read_config+0x120/0x168
[c000000010483a40] [c000000000025af4] .rtas_pci_read_config+0xe4/0x124
[c000000010483af0] [c00000000037af18] .pci_bus_read_config_word+0xac/0x104
[c000000010483bc0] [c0000000008fec98] .pcibios_allocate_resources+0x7c/0x220
[c000000010483c90] [c0000000008feed8] .pcibios_resource_survey+0x9c/0x418
[c000000010483d80] [c0000000008fea10] .pcibios_init+0xbc/0xf4
[c000000010483e20] [c000000000009844] .do_one_initcall+0x98/0x1d8
[c000000010483ed0] [c0000000008f0560] .kernel_init+0x228/0x2e8
[c000000010483f90] [c000000000031a08] .kernel_thread+0x54/0x70
EEH: Detected PCI bus error on device <null>
EEH: This PCI device has failed 1 times in the last hour:
EEH: location=U78A5.001.WIH8464-P1 driver= pci addr=0001:00:01.0
EEH: of node=/pci@800000020000209/usb@1
EEH: PCI device/vendor: 00351033
EEH: PCI cmd/status register: 12100146

Unable to handle kernel paging request for data at address 0x00000468
Oops: Kernel access of bad area, sig: 11 [#1]
....
NIP [c000000000057610] .rtas_set_slot_reset+0x38/0x10c
LR [c000000000058724] .eeh_reset_device+0x5c/0x124
Call Trace:
[c00000000bc6bd00] [c00000000005a0e0] .pcibios_remove_pci_devices+0x7c/0xb0 (unreliable)
[c00000000bc6bd90] [c000000000058724] .eeh_reset_device+0x5c/0x124
[c00000000bc6be40] [c0000000000589c0] .handle_eeh_events+0x1d4/0x39c
[c00000000bc6bf00] [c000000000059124] .eeh_event_handler+0xf0/0x188
[c00000000bc6bf90] [c000000000031a08] .kernel_thread+0x54/0x70

We called rtas_set_slot_reset while scanning the bus and before the pci_dn
to pcidev mapping has been created. Since we only need the pcidev to work
out the type of reset and that only gets set after the module for the
device loads, lets just do a hot reset if the pcidev is NULL.

Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Linas Vepstas <linasvepstas@gmail.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2010-05-21 17:31:09 +10:00
..
8xx include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
40x powerpc/40x: Add support for the ESTeem 195E (PPC405EP) SBC 2009-08-31 09:15:51 -04:00
44x powerpc/4xx: Simple platform for the ISS 4xx simulator 2010-05-05 11:11:56 -04:00
52xx Merge branch 'master' into export-slabh 2010-04-05 11:37:28 +09:00
82xx include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
83xx powerpc/83xx: Add MCU LEDs support for MPC837xRDB and MPC8315RDB boards 2010-05-17 10:55:32 -05:00
85xx powerpc/85xx/86xx: Fix build w/ CONFIG_PCI=n 2010-04-19 23:12:21 -05:00
86xx powerpc/8610: add probing for individual DMA channels, not just DMA controllers 2010-05-17 10:55:33 -05:00
512x Merge commit 'gcl/next' into next 2010-02-19 14:38:23 +11:00
amigaone kbuild: move utsrelease.h to include/generated 2009-12-12 13:08:15 +01:00
cell powerpc/cpumask: Dynamically allocate cpu_sibling_map and cpu_core_map cpumasks 2010-05-06 17:41:56 +10:00
chrp include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
embedded6xx powerpc/gc/wii: Remove get_irq_desc() 2009-12-21 11:12:14 +11:00
iseries powerpc: Avoid bad relocations in iSeries code 2010-05-21 17:31:08 +10:00
maple include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pasemi powerpc/cpumask: Use cpu_online_mask 2010-05-06 17:16:12 +10:00
powermac powerpc: Use common cpu_die (fixes SMP+SUSPEND build) 2010-05-21 17:31:08 +10:00
prep powerpc/kconfig: Kill PPC_MULTIPLATFORM 2009-03-11 17:11:35 +11:00
ps3 include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pseries powerpc/eeh: Fix oops when probing in early boot 2010-05-21 17:31:09 +10:00
fsl_uli1575.c PCI: add pci_bus_for_each_resource(), remove direct bus->resource[] refs 2010-02-23 09:43:31 -08:00
Kconfig powerpc/85xx: Kconfig cleanup 2009-11-20 16:45:27 -06:00
Kconfig.cputype powerpc/47x: Base ppc476 support 2010-05-05 09:11:10 -04:00
Makefile powerpc/85xx: Kconfig cleanup 2009-11-20 16:45:27 -06:00