[PATCH] PM / USB: hcd_pci: Skip secondary root hub check for HCD_DEAD()

From: Rafael J. Wysocki
Date: Mon Jul 24 2017 - 19:12:11 EST


From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

If HCD_DEAD(hcd) is "true" in check_root_hub_suspended(), it is
rather pointless to check the secondary root hub, so return early
then.

This actually fixes occasional suspend failures on one of my test
machines.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
---
drivers/usb/core/hcd-pci.c | 3 +++
1 file changed, 3 insertions(+)

Index: linux-pm/drivers/usb/core/hcd-pci.c
===================================================================
--- linux-pm.orig/drivers/usb/core/hcd-pci.c
+++ linux-pm/drivers/usb/core/hcd-pci.c
@@ -427,6 +427,9 @@ static int check_root_hub_suspended(stru
dev_warn(dev, "Root hub is not suspended\n");
return -EBUSY;
}
+ if (HCD_DEAD(hcd))
+ return 0;
+
if (hcd->shared_hcd) {
hcd = hcd->shared_hcd;
if (HCD_RH_RUNNING(hcd)) {