• Alan Stern's avatar
    USB: don't ignore suspend errors for root hubs · cd4376e2
    Alan Stern authored
    This patch (as1532) fixes a mistake in the USB suspend code.  When the
    system is going to sleep, we should ignore errors in powering down USB
    devices, because they don't really matter.  The devices will go to low
    power anyway when the entire USB bus gets suspended (except for
    SuperSpeed devices; maybe they will need special treatment later).
    
    However we should not ignore errors in suspending root hubs,
    especially if the error indicates that the suspend raced with a wakeup
    request.  Doing so might leave the bus powered on while the system was
    supposed to be asleep, or it might cause the suspend of the root hub's
    parent controller device to fail, or it might cause a wakeup request
    to be ignored.
    
    The patch fixes the problem by ignoring errors only when the device in
    question is not a root hub.
    Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
    Reported-by: default avatarChen Peter <B29397@freescale.com>
    CC: <stable@vger.kernel.org>
    Tested-by: default avatarChen Peter <peter.chen@freescale.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    cd4376e2
driver.c 49.9 KB