On Tue, 2019-09-03 at 10:15:52 UTC, Oliver O'Halloran wrote: > 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 <ooh...@gmail.com>
Series applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/799abe283e5103d48e079149579b4f167c95ea0e cheers