• A
    xHCI: fix bug in xhci_clear_command_ring() · 158886cd
    Andiry Xu 提交于
    When system enters suspend, xHCI driver clears command ring by writing zero
    to all the TRBs. However, this also writes zero to the Link TRB, and the ring
    is mangled. This may cause driver accesses wrong memory address and the
    result is unpredicted.
    
    When clear the command ring, keep the last Link TRB intact, only clear its
    cycle bit. This should fix the "command ring full" issue reported by Oliver
    Neukum.
    
    This should be backported to stable kernels as old as 2.6.37, since the
    commit 89821320 "xhci: Fix command ring replay after resume" is merged.
    Signed-off-by: NAndiry Xu <andiry.xu@amd.com>
    Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
    Reported-by: NOliver Neukum <oneukum@suse.de>
    158886cd
xhci.c 122.2 KB