diff options
author | Malcolm Priestley <tvboxspy@gmail.com> | 2014-05-15 22:49:20 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-15 15:02:19 -0700 |
commit | 29b02373f44d0d873a4f645b53c3cddce2f40f7b (patch) | |
tree | 7a21c56d9b58ff3dade8fd452e0966e708395784 /drivers/staging/vt6656/usbpipe.c | |
parent | c91b1869fb6f6d58f6321b8a88bd39577b0413a7 (diff) | |
download | linux-29b02373f44d0d873a4f645b53c3cddce2f40f7b.tar.bz2 |
staging: vt6656: lock changes: s_nsBulkInUsbIoCompleteRead.
Use spin_lock_irqsave/spin_unlock_irqrestore
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/vt6656/usbpipe.c')
-rw-r--r-- | drivers/staging/vt6656/usbpipe.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/staging/vt6656/usbpipe.c b/drivers/staging/vt6656/usbpipe.c index 934d0a92363b..b707470143af 100644 --- a/drivers/staging/vt6656/usbpipe.c +++ b/drivers/staging/vt6656/usbpipe.c @@ -474,6 +474,7 @@ static void s_nsBulkInUsbIoCompleteRead(struct urb *urb) { struct vnt_rcb *rcb = urb->context; struct vnt_private *priv = rcb->pDevice; + unsigned long flags; int re_alloc_skb = false; DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"---->s_nsBulkInUsbIoCompleteRead\n"); @@ -493,23 +494,23 @@ static void s_nsBulkInUsbIoCompleteRead(struct urb *urb) } if (urb->actual_length) { - spin_lock(&priv->lock); + spin_lock_irqsave(&priv->lock, flags); if (RXbBulkInProcessData(priv, rcb, urb->actual_length) == true) re_alloc_skb = true; - spin_unlock(&priv->lock); + spin_unlock_irqrestore(&priv->lock, flags); } rcb->Ref--; if (rcb->Ref == 0) { DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO"RxvFreeNormal %d\n", priv->NumRecvFreeList); - spin_lock(&priv->lock); + spin_lock_irqsave(&priv->lock, flags); RXvFreeRCB(rcb, re_alloc_skb); - spin_unlock(&priv->lock); + spin_unlock_irqrestore(&priv->lock, flags); } return; |