summaryrefslogtreecommitdiff
path: root/drivers/usb/serial
diff options
context:
space:
mode:
authorHuajun Li <huajun.li.lee@gmail.com>2012-05-18 20:12:51 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-06-01 15:15:48 +0800
commita8467ea0e79ca99f4114e7c64ad6b1adaf2ca7ce (patch)
tree50e10c399e5d41bbe63f42a4ff0854877d9d1eb4 /drivers/usb/serial
parentfdda49b01c157b6723137040e2033fe92188903c (diff)
USB: Remove races in devio.c
commit 4e09dcf20f7b5358615514c2ec8584b248ab8874 upstream. There exist races in devio.c, below is one case, and there are similar races in destroy_async() and proc_unlinkurb(). Remove these races. cancel_bulk_urbs() async_completed() ------------------- ----------------------- spin_unlock(&ps->lock); list_move_tail(&as->asynclist, &ps->async_completed); wake_up(&ps->wait); Lead to free_async() be triggered, then urb and 'as' will be freed. usb_unlink_urb(as->urb); ===> refer to the freed 'as' Signed-off-by: Huajun Li <huajun.li.lee@gmail.com> Cc: Alan Stern <stern@rowland.harvard.edu> Cc: Oncaphillis <oncaphillis@snafu.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/serial')
0 files changed, 0 insertions, 0 deletions