Some time ago I reported some USB problems consisting of getting EPIPEs
when trying to read strings with lsusb.
I have done some more investigation and I think I solved the problem: I
get EPIPEs because the control endpoint is stalled due to a failure and
the halt is never cleared.
However drivers/usb/core/message.c contains the following paragraph:
"Note that control and isochronous endpoints don't halt, although
control endpoints report "protocol stall" (for unsupported requests)
using the same status code used to report a true stall."
Based on this, I tried to remove the call to usb_endpoint_halt in
uhci_result_control, and everything is now working.
Is this modification correct?