Patch "USB: hcd: Mark secondary HCD as dead if the primary one died" has been added to the 3.18-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
USB: hcd: Mark secondary HCD as dead if the primary one died
to the 3.18-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
usb-hcd-mark-secondary-hcd-as-dead-if-the-primary-one-died.patch
and it can be found in the queue-3.18 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
cd5a6a4fdaba150089af2afc220eae0fef74878aMon Sep 17 00:00:00 2001
From: "Rafael J. Wysocki" <[email protected]>
Date: Tue, 25 Jul 2017 23:58:50 +0200
Subject: USB: hcd: Mark secondary HCD as dead if the primary one died
From: Rafael J. Wysocki <[email protected]>
commit cd5a6a4fdaba150089af2afc220eae0fef74878a upstream.
Make usb_hc_died() clear the HCD_FLAG_RH_RUNNING flag for the shared HCD and set HCD_FLAG_DEAD for it, in analogy with what is done for the primary one.
Among other thigs, this prevents check_root_hub_suspended() from returning -EBUSY for dead HCDs which helps to work around system suspend issues in some situations.
This actually fixes occasional suspend failures on one of my test machines.
--- drivers/usb/core/hcd.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/usb/core/hcd.c +2 -0
@@ -2398,6 +2398,8 @@ void usb_hc_died (struct usb_hcd *hcd) }if (usb_hcd_is_primary_hcd (hcd) && hcd->shared_hcd) { hcd = hcd->shared_hcd; +clear_bit (HCD_FLAG_RH_RUNNING , &hcd->flags); +set_bit (HCD_FLAG_DEAD , &hcd->flags);if (hcd->rh_registered) {clear_bit (HCD_FLAG_POLL_RH , &hcd->flags);
Patches currently in stable-queue which might be from [email protected] are
queue-3.18/usb-hcd-mark-secondary-hcd-as-dead-if-the-primary-one-died.patch