summaryrefslogtreecommitdiffstats
path: root/drivers/usb/core
diff options
context:
space:
mode:
authorSarah Sharp <sarah.a.sharp@linux.intel.com>2011-06-05 23:10:04 -0700
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2011-06-15 14:04:35 -0700
commitfa75ac379e63c2864e9049b5e8615e40f65c1e70 (patch)
tree1aa8b56c20f2547c0ce14a35403edd2f575e3403 /drivers/usb/core
parent357f45db920393aac983a137bd74095f612d5a01 (diff)
downloadop-kernel-dev-fa75ac379e63c2864e9049b5e8615e40f65c1e70.zip
op-kernel-dev-fa75ac379e63c2864e9049b5e8615e40f65c1e70.tar.gz
xhci: Reject double add of active endpoints.
While trying to switch a UAS device from the BOT configuration to the UAS configuration via the bConfigurationValue file, Tanya ran into an issue in the USB core. usb_disable_device() sets entries in udev->ep_out and udev->ep_out to NULL, but doesn't call into the xHCI bandwidth management functions to remove the BOT configuration endpoints from the xHCI host's internal structures. The USB core would then attempt to add endpoints for the UAS configuration, and some of the endpoints had the same address as endpoints in the BOT configuration. The xHCI driver blindly added the endpoints again, but the xHCI host controller rejected the Configure Endpoint command because active endpoints were added without being dropped. Make the xHCI driver reject calls to xhci_add_endpoint() that attempt to add active endpoints without first calling xhci_drop_endpoint(). This should be backported to kernels as old as 2.6.31. Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com> Reported-by: Tanya Brokhman <tlinder@codeaurora.org> Cc: stable@kernel.org
Diffstat (limited to 'drivers/usb/core')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud