Commit 24dd2623 authored by Wayne Whitney's avatar Wayne Whitney Committed by Greg Kroah-Hartman

[PATCH] uhci-hcd.c shouldn't halt control endpoints

uhci-hcd.c currently calls usb_endpoint_halt() in the td_error: path of
uhci_result_control().  David Brownell told me that "control endpoints
don't halt" and that this is wrong.  The patch below fixes this and allows
my Belkin Universal UPS to work.  [Although it still prints lots of
"drivers/usb/input/hid-core.c: ctrl urb status -32 received" messages.]
Greg K-H, could you merge this if it looks right?  David mentioned that
the same bug exists in 2.4.x.
parent 412c9e6a
......@@ -1051,10 +1051,6 @@ static int uhci_result_control(struct uhci_hcd *uhci, struct urb *urb)
td_error:
ret = uhci_map_status(status, uhci_packetout(td_token(td)));
if (ret == -EPIPE)
/* endpoint has stalled - mark it halted */
usb_endpoint_halt(urb->dev, uhci_endpoint(td_token(td)),
uhci_packetout(td_token(td)));
err:
if ((debug == 1 && ret != -EPIPE) || debug > 1) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment