• A
    USB: EHCI: unlink unused QHs when the controller is stopped · 94ae4976
    Alan Stern 提交于
    This patch (as1458) fixes a problem affecting ultra-reliable systems:
    When hardware failover of an EHCI controller occurs, the data
    structures do not get released correctly.  This is because the routine
    responsible for removing unused QHs from the async schedule assumes
    the controller is running properly (the frame counter is used in
    determining how long the QH has been idle) -- but when a failover
    causes the controller to be electronically disconnected from the PCI
    bus, obviously it stops running.
    
    The solution is simple: Allow scan_async() to remove a QH from the
    async schedule if it has been idle for long enough _or_ if the
    controller is stopped.
    Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
    Reported-and-Tested-by: NDan Duval <dan.duval@stratus.com>
    CC: <stable@kernel.org>
    Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
    94ae4976
ehci-q.c 36.2 KB