• Mathias Nyman's avatar
    usb: fix regression in SuperSpeed endpoint descriptor parsing · 59b9023c
    Mathias Nyman authored
    commit b37d83a6 ("usb: Parse the new USB 3.1 SuperSpeedPlus Isoc
    endpoint companion descriptor") caused a regression in 4.6-rc1 and fails
    to parse SuperSpeed endpoint companion descriptors.
    
    The new SuperSpeedPlus Isoc endpoint companion parsing code incorrectly
    decreased the the remaining buffer size before comparing the size with the
    expected length of the descriptor.
    
    This lead to possible failure in reading the SuperSpeed endpoint companion
    descriptor of the last endpoint, displaying a message like:
    
    "No SuperSpeed endpoint companion for config 1 interface 0 altsetting 0
     ep 129: using minimum values"
    
    Fix it by decreasing the size after comparing it.
    Also finish all the SS endpoint companion parsing before calling SSP isoc
    endpoint parsing function.
    
    Fixes: b37d83a6Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    59b9023c
config.c 25.6 KB