forked from raspberrypi/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dwc_otg: Call usb_hcd_unlink_urb_from_ep with lock held in completion…
… handler usb_hcd_unlink_urb_from_ep must be called with the lock held. Not doing so resulted in corruption of the list, and doing it asynchronously in the tasklet (see c4564d4) made the problem more likely to occur. Also ensure the urb is OK to be unlinked before doing so, and unlink it from the endpoint prior to queueing it for handling in the tasklet. NULL pointer deref kernel oopses had been occurring in usb_hcd_giveback_urb when a USB device was unplugged/replugged during data transfer. This effect was reproduced using automated USB port power control, hundreds of replug events were performed during active transfers to confirm that the problem was eliminated.
- Loading branch information
Showing
2 changed files
with
18 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters