linux-stable/arch/powerpc/platforms/pseries
Gavin Shan 2ef822c553 powerpc/eeh: Fix crash caused by null eeh_dev
The problem was reported by Anton Blanchard. While EEH error
happened to the PCI device without the corresponding device
driver, kernel crash was seen. Eventually, I successfully
reproduced the problem on Firebird-L machine with utility
"errinjct". Initially, the device driver for Emulex ethernet
MAC has been disabled from .config and force data parity on
the Emulex ethernet MAC with help of "errinjct". Eventually,
I saw the kernel crash after issueing couple of "lspci -v"
command.

The root cause behind is that the PCI device, including the
reference to the corresponding eeh device, will be removed
from the system while EEH does recovery. Afterwards, the
PCI device will be probed again and added into the system
accordingly. So it's not safe to retrieve the eeh device from
the corresponding PCI device after the PCI device has been removed
and not added again.

The patch fixes the issue and retrieve the eeh device from OF node
instead of PCI device after the PCI device has been removed.

Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
Tested-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2012-04-23 11:04:28 +10:00
..
cmm.c power: cmm - convert sysdev_class to a regular subsystem 2011-12-21 15:09:51 -08:00
dlpar.c powerpc/pseries: Avoid spurious error during hotplug CPU add 2011-09-20 09:20:00 +10:00
dtl.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
eeh.c powerpc/eeh: Fix crash caused by null eeh_dev 2012-04-23 11:04:28 +10:00
eeh_cache.c powerpc/eeh: Replace pci_dn with eeh_dev for EEH address cache 2012-03-09 11:39:42 +11:00
eeh_dev.c powerpc/eeh: Remove eeh device from OF node 2012-03-28 11:31:57 +11:00
eeh_driver.c powerpc/eeh: Replace pci_dn with eeh_dev for EEH aux components 2012-03-09 11:39:46 +11:00
eeh_event.c powerpc/eeh: Fix use of set_current_state() in eeh event handling set_current_state() wart 2012-04-02 14:31:19 +10:00
eeh_pseries.c powerpc/eeh: pseries platform config space access in EEH 2012-03-09 11:39:51 +11:00
eeh_sysfs.c powerpc/eeh: Replace pci_dn with eeh_dev for EEH sysfs 2012-03-09 11:39:40 +11:00
event_sources.c powerpc/pseries: Add WARN_ON() to request_event_sources_irqs() on irq allocation/request failure 2010-07-09 11:28:32 +10:00
firmware.c powerpc: Add VPHN firmware feature 2010-11-29 15:48:22 +11:00
hotplug-cpu.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
hotplug-memory.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2011-07-25 22:59:39 -07:00
hvCall.S powerpc: Fix unpaired __trace_hcall_entry and __trace_hcall_exit 2012-01-11 12:50:26 +11:00
hvCall_inst.c powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit 2012-01-03 12:09:27 +11:00
hvconsole.c powerpc: convert hvconsole.c to export.h ; fix implicit use of errno.h 2011-10-31 19:30:43 -04:00
hvcserver.c
io_event_irq.c powerpc: Make function that parses RTAS error logs global 2012-03-28 11:31:58 +11:00
iommu.c powerpc/eeh: Remove eeh information from pci_dn 2012-03-28 11:31:57 +11:00
Kconfig Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-03-21 18:55:10 -07:00
kexec.c powerpc/pseries: Simplify vpa deregistration functions 2011-08-05 14:47:58 +10:00
lpar.c powerpc: Remove FW_FEATURE ISERIES from arch code 2012-03-21 11:16:11 +11:00
Makefile powerpc/eeh: Introduce EEH device 2012-03-09 11:39:29 +11:00
mobility.c powerpc: Fix up implicit stat.h users 2011-10-31 19:30:39 -04:00
msi.c powerpc/eeh: Cleanup function names in the EEH core 2012-03-09 11:08:37 +11:00
nvram.c kexec: remove KMSG_DUMP_KEXEC 2012-01-12 20:13:11 -08:00
offline_states.h powerpc/smp: soft-replugged CPUs must go back to start_secondary 2011-04-01 15:37:09 +11:00
pci.c
pci_dlpar.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
plpar_wrappers.h powerpc: fix two implicit header uses in pseries/plpar_wrappers.h 2011-10-31 19:30:42 -04:00
power.c [POWERPC] Fix warning in pseries/power.c 2008-02-20 13:33:37 +11:00
processor_idle.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
pseries.h powerpc/cpuidle: cpuidle driver for pSeries 2011-12-08 13:56:31 +11:00
pseries_energy.c cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem 2011-12-21 14:29:42 -08:00
ras.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
reconfig.c powerpc/pseries: Improve error code on reconfiguration notifier failure 2011-06-29 17:48:24 +10:00
scanlog.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
setup.c Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-03-23 14:02:12 -07:00
smp.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
suspend.c powerpc/pseries: Fix partition migration hang in stop_topology_update 2012-02-14 15:01:39 +11:00