diff --git a/vmkdrivers/src_92/drivers/usb/net/usbnet.c b/vmkdrivers/src_92/drivers/usb/net/usbnet.c index 61c651d909a98d640697b5b92ed4647b196d7f18..1cc0ff206cabcaa896a730285923b2bbf8f19643 100644 --- a/vmkdrivers/src_92/drivers/usb/net/usbnet.c +++ b/vmkdrivers/src_92/drivers/usb/net/usbnet.c @@ -278,8 +278,11 @@ static void defer_bh(struct usbnet *dev, struct sk_buff *skb, struct sk_buff_hea spin_unlock(&list->lock); spin_lock(&dev->done.lock); __skb_queue_tail(&dev->done, skb); - if (dev->done.qlen == 1) + if (dev->done.qlen == 1) { + spin_unlock_irqrestore(&dev->done.lock, flags); tasklet_schedule(&dev->bh); + return; + } spin_unlock_irqrestore(&dev->done.lock, flags); }