diff options
author | Thomas Pugliese <thomas.pugliese@gmail.com> | 2014-04-23 15:32:27 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-24 15:45:40 -0400 |
commit | 7584f2ebc18b6355f21be5fb2f75afbf3f781ce5 (patch) | |
tree | 048f31e5c303f4fcbb1cd5d7110598ffeec72d0f | |
parent | c996b9379180ee578b9ea208bb4f197201bbb023 (diff) |
usb: wusbcore: convert nested lock to use spin_lock instead of spin_lock_irq
Nesting a spin_lock_irq/unlock_irq inside a lock that has already
disabled interrupts will enable interrupts before we are ready when
spin_unlock_irq is called. This patch converts the inner lock to use
spin_lock and spin_unlock instead.
Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/usb/wusbcore/wa-xfer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c index c8e2a47d62a7..3e2e4ed20157 100644 --- a/drivers/usb/wusbcore/wa-xfer.c +++ b/drivers/usb/wusbcore/wa-xfer.c | |||
@@ -2390,10 +2390,10 @@ error_complete: | |||
2390 | done) { | 2390 | done) { |
2391 | 2391 | ||
2392 | dev_info(dev, "Control EP stall. Queue delayed work.\n"); | 2392 | dev_info(dev, "Control EP stall. Queue delayed work.\n"); |
2393 | spin_lock_irq(&wa->xfer_list_lock); | 2393 | spin_lock(&wa->xfer_list_lock); |
2394 | /* move xfer from xfer_list to xfer_errored_list. */ | 2394 | /* move xfer from xfer_list to xfer_errored_list. */ |
2395 | list_move_tail(&xfer->list_node, &wa->xfer_errored_list); | 2395 | list_move_tail(&xfer->list_node, &wa->xfer_errored_list); |
2396 | spin_unlock_irq(&wa->xfer_list_lock); | 2396 | spin_unlock(&wa->xfer_list_lock); |
2397 | spin_unlock_irqrestore(&xfer->lock, flags); | 2397 | spin_unlock_irqrestore(&xfer->lock, flags); |
2398 | queue_work(wusbd, &wa->xfer_error_work); | 2398 | queue_work(wusbd, &wa->xfer_error_work); |
2399 | } else { | 2399 | } else { |