1. 05 Sep, 2019 1 commit
    • Oliver O'Halloran's avatar
      powerpc/eeh: Clean up EEH PEs after recovery finishes · 799abe28
      Oliver O'Halloran authored
      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: default avatarOliver O'Halloran <oohall@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Link: https://lore.kernel.org/r/20190903101605.2890-2-oohall@gmail.com
      799abe28
  2. 30 Aug, 2019 37 commits
  3. 29 Aug, 2019 2 commits