aboutsummaryrefslogtreecommitdiff
path: root/arch/powerpc/include/asm/pci-bridge.h
diff options
context:
space:
mode:
authorOliver O'Halloran <[email protected]>2019-09-03 20:15:52 +1000
committerMichael Ellerman <[email protected]>2019-09-05 14:22:37 +1000
commit799abe283e5103d48e079149579b4f167c95ea0e (patch)
tree5eb535683b2ccfbbe99afb2bd87a666f10759fb9 /arch/powerpc/include/asm/pci-bridge.h
parent9b123d1ea23701bc00ebf712f1e03b25b8195eeb (diff)
powerpc/eeh: Clean up EEH PEs after recovery finishes
When the last device in an eeh_pe is removed the eeh_pe structure itself (and any empty parents) are freed since they are no longer needed. This results in a crash when a hotplug driver is involved since the following may occur: 1. Device is suprise removed. 2. Driver performs an MMIO, which fails and queues and eeh_event. 3. Hotplug driver receives a hotplug interrupt and removes any pci_devs that were under the slot. 4. pci_dev is torn down and the eeh_pe is freed. 5. The EEH event handler thread processes the eeh_event and crashes since the eeh_pe pointer in the eeh_event structure is no longer valid. Crashing is generally considered poor form. Instead of doing that use the fact PEs are marked as EEH_PE_INVALID to keep them around until the end of the recovery cycle, at which point we can safely prune any empty PEs. Signed-off-by: Oliver O'Halloran <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Link: https://lore.kernel.org/r/[email protected]
Diffstat (limited to 'arch/powerpc/include/asm/pci-bridge.h')
0 files changed, 0 insertions, 0 deletions