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>
This commit is contained in:
Thomas Pugliese 2014-04-23 14:32:27 -05:00 committed by Greg Kroah-Hartman
parent c996b93791
commit 7584f2ebc1

View File

@ -2390,10 +2390,10 @@ error_complete:
done) { done) {
dev_info(dev, "Control EP stall. Queue delayed work.\n"); dev_info(dev, "Control EP stall. Queue delayed work.\n");
spin_lock_irq(&wa->xfer_list_lock); spin_lock(&wa->xfer_list_lock);
/* move xfer from xfer_list to xfer_errored_list. */ /* move xfer from xfer_list to xfer_errored_list. */
list_move_tail(&xfer->list_node, &wa->xfer_errored_list); list_move_tail(&xfer->list_node, &wa->xfer_errored_list);
spin_unlock_irq(&wa->xfer_list_lock); spin_unlock(&wa->xfer_list_lock);
spin_unlock_irqrestore(&xfer->lock, flags); spin_unlock_irqrestore(&xfer->lock, flags);
queue_work(wusbd, &wa->xfer_error_work); queue_work(wusbd, &wa->xfer_error_work);
} else { } else {