Skip to content
  • Hans de Goede's avatar
    usb: ohci: Do not reuse ed for interrupt endpoints of different devices · 44dbc330
    Hans de Goede authored
    
    
    When submitting interrupt packets to an endpoint we only link in the ed
    once to avoid some races surrounding unlinking of periodic endpoints,
    but we share one ohci_device struct / one set of ed-s for all devices,
    which means that if we have an interrupt endpoint at endpoint 1 with one
    device, and a non interrupt endpoint 1 with another device we end up
    with the same ed linked into both the periodic and async lists, which is
    not good (tm).
    
    This commit switches over to using separate ohci_device structs, and thus
    separate ed-s for devices with interrupt endpoints, fixing this.
    
    This fixes e.g. matching a usb storage device and keyboard on the same
    usb-1 hub not working.
    
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Reviewed-by: default avatarMarek Vasut <marex@denx.de>
    44dbc330