I don't know why this was disabled, but not canceling the queued transfers after

a timeout leaks these transfers. In the end this would at least lead to a flood
of canceled transfers on device unplug or, worse yet, exhaust the USB memory
pool stalling all further transfers as seen in #4604. Probably fixes both
issues, can't test though as I don't have the hardware.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34915 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz 2010-01-06 00:54:15 +00:00
parent cb3d173dc2
commit 5926a6129f

View File

@ -547,7 +547,7 @@ device_read(void* cookie, off_t pos, void* buf, size_t* count)
B_RELATIVE_TIMEOUT, 500 * 1000);
// handle time out
if (ret < B_OK) {
// usb->cancel_queued_transfers(device->pipe);
usb->cancel_queued_transfers(device->pipe);
if (ret == B_TIMED_OUT) {
// a time_out is ok, since it only means that the device
// had nothing to report (ie mouse/pen was not moved)