diff options
author | Thomas Pugliese <thomas.pugliese@gmail.com> | 2014-02-28 14:31:57 -0600 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-02-28 16:13:09 -0800 |
commit | 5da43afc2b73795e82c4bc3e53a4a177a02637d0 (patch) | |
tree | 049941c751b72206569d778bf468336599f83cd8 /fs | |
parent | acfadcea2adaa52048c6b3c8a3c75105a5540707 (diff) | |
download | linux-stable-5da43afc2b73795e82c4bc3e53a4a177a02637d0.tar.gz linux-stable-5da43afc2b73795e82c4bc3e53a4a177a02637d0.tar.bz2 linux-stable-5da43afc2b73795e82c4bc3e53a4a177a02637d0.zip |
usb: wusbcore: prevent urb dequeue and giveback race
This patch takes a reference to the wa_xfer object in wa_urb_dequeue to
prevent the urb giveback code from completing the xfer and freeing it
while wa_urb_dequeue is executing. It also checks for done at the start
to avoid a double completion scenario. Adding the check for done in
urb_dequeue means that any other place where a submitted transfer
segment is marked as done must complete the transfer if it is done.
__wa_xfer_delayed_run was not checking this case so that check was added
as well.
Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs')
0 files changed, 0 insertions, 0 deletions