From 28c27ee5e1dd6114ab4001089ce573dd14b02482 Mon Sep 17 00:00:00 2001 From: Sebastian Siewior Date: Wed, 7 Mar 2012 10:19:28 +0000 Subject: [PATCH] --- yaml --- r: 288374 b: refs/heads/master c: 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/usb/usbnet.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a3b0d24ffe89..70249cb2d031 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ac3f48de09d8f4b73397047e413fadff7f65cfa7 +refs/heads/master: 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d diff --git a/trunk/drivers/net/usb/usbnet.c b/trunk/drivers/net/usb/usbnet.c index fae0fbd8bc88..81b96e303757 100644 --- a/trunk/drivers/net/usb/usbnet.c +++ b/trunk/drivers/net/usb/usbnet.c @@ -589,6 +589,7 @@ static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q) entry = (struct skb_data *) skb->cb; urb = entry->urb; + spin_unlock_irqrestore(&q->lock, flags); // during some PM-driven resume scenarios, // these (async) unlinks complete immediately retval = usb_unlink_urb (urb); @@ -596,6 +597,7 @@ static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q) netdev_dbg(dev->net, "unlink urb err, %d\n", retval); else count++; + spin_lock_irqsave(&q->lock, flags); } spin_unlock_irqrestore (&q->lock, flags); return count;