powerpc/eeh: Make permanently failed devices non-actionable
authorOliver O'Halloran <oohall@gmail.com>
Tue, 3 Sep 2019 10:15:54 +0000 (20:15 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 5 Sep 2019 04:22:38 +0000 (14:22 +1000)
If a device is torn down by a hotplug slot driver it's marked as removed
and marked as permaantly failed. There's no point in trying to recover a
permernantly failed device so it should be considered un-actionable.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190903101605.2890-4-oohall@gmail.com
arch/powerpc/kernel/eeh_driver.c

index 75266156943fbf079e64d2fc88418d848398ef9e..18a69fac4d80eb310ee320aba173a4a1e341f324 100644 (file)
@@ -96,8 +96,16 @@ static bool eeh_dev_removed(struct eeh_dev *edev)
 
 static bool eeh_edev_actionable(struct eeh_dev *edev)
 {
-       return (edev->pdev && !eeh_dev_removed(edev) &&
-               !eeh_pe_passed(edev->pe));
+       if (!edev->pdev)
+               return false;
+       if (edev->pdev->error_state == pci_channel_io_perm_failure)
+               return false;
+       if (eeh_dev_removed(edev))
+               return false;
+       if (eeh_pe_passed(edev->pe))
+               return false;
+
+       return true;
 }
 
 /**