diff options
Diffstat (limited to 'drivers/net/usb/usbnet.c')
| -rw-r--r-- | drivers/net/usb/usbnet.c | 2 | 
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index fae0fbd8bc8..81b96e30375 100644 --- a/drivers/net/usb/usbnet.c +++ b/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;  |