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 <ooh...@gmail.com>
---
 arch/powerpc/kernel/eeh_driver.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c
index 75266156943f..18a69fac4d80 100644
--- a/arch/powerpc/kernel/eeh_driver.c
+++ b/arch/powerpc/kernel/eeh_driver.c
@@ -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;
 }
 
 /**
-- 
2.21.0

Reply via email to