summaryrefslogtreecommitdiff
path: root/drivers/usb/class
diff options
context:
space:
mode:
authorThomas Pugliese <thomas.pugliese@gmail.com>2013-08-12 10:10:53 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-08-12 13:13:33 -0700
commite9a088fae5e4f9be729f3f419627abc3886b09de (patch)
tree809f203ad57304ee888532b0af93d29d01ed368f /drivers/usb/class
parent467d296f47731bcba578cfdea8416b4c152c4f1b (diff)
downloadlinux-next-e9a088fae5e4f9be729f3f419627abc3886b09de.tar.gz
wusbcore: clean up list locking in urb enqueue
wa_urb_enqueue_run locks and unlocks its list lock as it traverses the list of queued transfers. This was done to prevent deadlocking due to acquiring locks in reverse order in different places. The problem is that releasing the lock during the list traversal could allow the dequeue routine to corrupt the list while it is being iterated over. This patch moves all list entries to a temp list while holding the list lock, then traverses the temp list with no lock held. Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/class')
0 files changed, 0 insertions, 0 deletions