forked from Minki/linux
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:
parent
c996b93791
commit
7584f2ebc1
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user