Skip to content
  • Stephen Warren's avatar
    usb: fix first descriptor fetch error handling · 25c06736
    Stephen Warren authored
    
    
    When fetching the first descriptor from a new device, only validate that
    we received at least 8 bytes, not that we received the entire descriptor.
    The reasoning is:
    - The code only uses fields in the first 8 bytes, so that's all we need
      to have fetched at this stage.
    - The smallest maxpacket size is 8 bytes. Before we know the actual
      maxpacket the device uses, the USB controller may only accept a single
      packet (see the DWC2 note in the comment added in the commit).
      Consequently we are only guaranteed to receive 1 packet (at least 8
      bytes) even in a non-error case.
    
    Fixes: 1a7758044b04 ("usb: Early failure when the first descriptor read
    fails or is invalid")
    Cc: Paul Kocialkowski <contact@paulk.fr>
    Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
    25c06736