Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1695766

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

From Alan Stern <stern@rowland.harvard.edu>
Newsgroups linux.kernel
Subject Re: [PATCH] PM / USB: hcd_pci: Skip secondary root hub check for HCD_DEAD()
Date 2017-07-25 16:10 +0200
Message-ID <u78H7-3MX-17@gated-at.bofh.it> (permalink)
References <u6UNR-3md-13@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Tue, 25 Jul 2017, Rafael J. Wysocki wrote:

> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> 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@intel.com>
> ---
>  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)) {

While this is an okay solution, IMO it would be more reliable and more 
general to have usb_hc_died() clear the HCD_FLAG_RH_RUNNING bit and set 
the HCD_FLAG_DEAD bit in the shared hcd.  Right now it only does these 
things for the primary.

Would you like to write and test a patch to do that?

Incidentally, if this fixes occasional suspend failures on your test 
machine, does that mean the test machine's host controller occasionally 
dies?  Maybe that should be fixed too...

Alan Stern

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH] PM / USB: hcd_pci: Skip secondary root hub check for HCD_DEAD() "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-07-25 01:20 +0200
  Re: [PATCH] PM / USB: hcd_pci: Skip secondary root hub check for  HCD_DEAD() Alan Stern <stern@rowland.harvard.edu> - 2017-07-25 16:10 +0200
    Re: [PATCH] PM / USB: hcd_pci: Skip secondary root hub check for HCD_DEAD() "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-07-25 18:10 +0200
      Re: [PATCH] PM / USB: hcd_pci: Skip secondary root hub check for HCD_DEAD() "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-07-25 22:50 +0200
        Re: [PATCH] PM / USB: hcd_pci: Skip secondary root hub check for  HCD_DEAD() Alan Stern <stern@rowland.harvard.edu> - 2017-07-25 23:10 +0200
          Re: [PATCH] PM / USB: hcd_pci: Skip secondary root hub check for HCD_DEAD() "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-07-25 23:50 +0200
  [PATCH] USB: hcd: Mark secondary HCD as dead if the primary one died "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-07-26 00:10 +0200
    Re: [PATCH] USB: hcd: Mark secondary HCD as dead if the primary one  died Alan Stern <stern@rowland.harvard.edu> - 2017-07-26 16:30 +0200
      Re: [PATCH] USB: hcd: Mark secondary HCD as dead if the primary one died "Rafael J. Wysocki" <rjw@rjwysocki.net> - 2017-07-26 19:20 +0200
        Re: [PATCH] USB: hcd: Mark secondary HCD as dead if the primary one  died Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2017-07-30 19:10 +0200

csiph-web