summaryrefslogtreecommitdiffstats
path: root/drivers/staging/most
diff options
context:
space:
mode:
authorChristian Gromm <christian.gromm@microchip.com>2016-09-19 17:40:23 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-09-20 08:39:42 +0200
commitd223b37c9f44273c0cca5138118d6c75e5110bfa (patch)
tree5848b29bb23ad59452998b4c797e6ec735bbac16 /drivers/staging/most
parent27e6245e35bc6c20c2933d7d8afa562623be1ef5 (diff)
downloadop-kernel-dev-d223b37c9f44273c0cca5138118d6c75e5110bfa.zip
op-kernel-dev-d223b37c9f44273c0cca5138118d6c75e5110bfa.tar.gz
staging: most: hdm-usb: remove redundant spinlocks
This patch removes the spinlocks when accessing the usb_anchor list, because the struct usb_anchor is using its own lock. Signed-off-by: Christian Gromm <christian.gromm@microchip.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/most')
-rw-r--r--drivers/staging/most/hdm-usb/hdm_usb.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/drivers/staging/most/hdm-usb/hdm_usb.c b/drivers/staging/most/hdm-usb/hdm_usb.c
index 58f65a4..f872ce9 100644
--- a/drivers/staging/most/hdm-usb/hdm_usb.c
+++ b/drivers/staging/most/hdm-usb/hdm_usb.c
@@ -197,12 +197,8 @@ static void free_anchored_buffers(struct most_dev *mdev, unsigned int channel,
{
struct mbo *mbo;
struct urb *urb;
- spinlock_t *lock = mdev->anchor_list_lock + channel; /* temp. lock */
- unsigned long flags;
- spin_lock_irqsave(lock, flags);
while ((urb = usb_get_from_anchor(&mdev->busy_urbs[channel]))) {
- spin_unlock_irqrestore(lock, flags);
mbo = urb->context;
usb_kill_urb(urb);
if (mbo && mbo->complete) {
@@ -211,9 +207,7 @@ static void free_anchored_buffers(struct most_dev *mdev, unsigned int channel,
mbo->complete(mbo);
}
usb_free_urb(urb);
- spin_lock_irqsave(lock, flags);
}
- spin_unlock_irqrestore(lock, flags);
}
/**
@@ -605,10 +599,8 @@ static int hdm_enqueue(struct most_interface *iface, int channel,
struct device *dev;
int retval = 0;
struct urb *urb;
- unsigned long flags;
unsigned long length;
void *virt_address;
- spinlock_t *lock; /* temp. lock */
if (unlikely(!iface || !mbo))
return -EIO;
@@ -657,10 +649,7 @@ static int hdm_enqueue(struct most_interface *iface, int channel,
}
urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
- lock = mdev->anchor_list_lock + channel;
- spin_lock_irqsave(lock, flags);
usb_anchor_urb(urb, &mdev->busy_urbs[channel]);
- spin_unlock_irqrestore(lock, flags);
retval = usb_submit_urb(urb, GFP_KERNEL);
if (retval) {
@@ -670,9 +659,7 @@ static int hdm_enqueue(struct most_interface *iface, int channel,
return 0;
_error_1:
- spin_lock_irqsave(lock, flags);
usb_unanchor_urb(urb);
- spin_unlock_irqrestore(lock, flags);
_error:
usb_free_urb(urb);
return retval;
OpenPOWER on IntegriCloud