• Andiry Xu's avatar
    xHCI: fix bug in xhci_clear_command_ring() · 158886cd
    Andiry Xu authored
    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: default avatarAndiry Xu <andiry.xu@amd.com>
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Reported-by: default avatarOliver Neukum <oneukum@suse.de>
    158886cd
xhci.c 122 KB