• Sarah Sharp's avatar
    xhci: Fix issue with port array setup and buggy hosts. · f8bbeabc
    Sarah Sharp authored
    Fix two bugs with the port array setup.
    
    The first bug will only show up with broken xHCI hosts with Extended
    Capabilities registers that have duplicate port speed entries for the same
    port.  The idea with the original code was to set the port_array entry to
    -1 if the duplicate port speed entry said the port was a different speed
    than the original port speed entry.  That would mean that later, the port
    would not be exposed to the USB core. Unfortunately, I forgot a continue
    statement, and the port_array entry would just be overwritten in the next
    line.
    
    The second bug would happen if there are conflicting port speed registers
    (so that some entry in port_array is -1), or one of the hardware port
    registers was not described in the port speed registers (so that some
    entry in port_array is 0).  The code that sets up the usb2_ports array
    would accidentally claim those ports.  That wouldn't really cause any
    user-visible issues, but it is a bug.
    
    This patch should go into the stable trees that have the port array and
    USB 3.0 port disabling prevention patches.
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: stable@kernel.org
    f8bbeabc
xhci-mem.c 59.8 KB