-
David Brownell authored
Alan Stern wrote: > I suggest you just forget about acquiring the lock in status_dequeue() and > simply leave it as > > del_timer_sync (&hcd->rh_timer); > hcd->rh_timer.data = 0; Hmm, so if some other URB gets queued in that window, it'll get trashed? Unlikely .. the clean fix would be making the status endpoint have a real URB queue. I combined your suggested change with two others: (a) protect the status-unlink and control completion handlers against IRQs [ the cases Duncan noted] (b) use mod_timer to retrigger the timer, instead of the heavy weight path.
6d58d234