aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/usb/usbnet.c
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2012-01-09 02:38:23 -0500
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2012-01-09 02:38:23 -0500
commitda733563be5a9da26fe81d9f007262d00b846e22 (patch)
treedb28291df94a2043af2123911984c5c173da4e6f /drivers/net/usb/usbnet.c
parent6ccbcf2cb41131f8d56ef0723bf3f7c1f8486076 (diff)
parentdab78d7924598ea4031663dd10db814e2e324928 (diff)
Merge branch 'next' into for-linus
Diffstat (limited to 'drivers/net/usb/usbnet.c')
-rw-r--r--drivers/net/usb/usbnet.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index ce395fe5de26..fae0fbd8bc88 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -238,6 +238,10 @@ void usbnet_skb_return (struct usbnet *dev, struct sk_buff *skb)
238 netif_dbg(dev, rx_status, dev->net, "< rx, len %zu, type 0x%x\n", 238 netif_dbg(dev, rx_status, dev->net, "< rx, len %zu, type 0x%x\n",
239 skb->len + sizeof (struct ethhdr), skb->protocol); 239 skb->len + sizeof (struct ethhdr), skb->protocol);
240 memset (skb->cb, 0, sizeof (struct skb_data)); 240 memset (skb->cb, 0, sizeof (struct skb_data));
241
242 if (skb_defer_rx_timestamp(skb))
243 return;
244
241 status = netif_rx (skb); 245 status = netif_rx (skb);
242 if (status != NET_RX_SUCCESS) 246 if (status != NET_RX_SUCCESS)
243 netif_dbg(dev, rx_err, dev->net, 247 netif_dbg(dev, rx_err, dev->net,
@@ -1053,6 +1057,9 @@ netdev_tx_t usbnet_start_xmit (struct sk_buff *skb,
1053 unsigned long flags; 1057 unsigned long flags;
1054 int retval; 1058 int retval;
1055 1059
1060 if (skb)
1061 skb_tx_timestamp(skb);
1062
1056 // some devices want funky USB-level framing, for 1063 // some devices want funky USB-level framing, for
1057 // win32 driver (usually) and/or hardware quirks 1064 // win32 driver (usually) and/or hardware quirks
1058 if (info->tx_fixup) { 1065 if (info->tx_fixup) {
@@ -1470,7 +1477,7 @@ int usbnet_suspend (struct usb_interface *intf, pm_message_t message)
1470 if (!dev->suspend_count++) { 1477 if (!dev->suspend_count++) {
1471 spin_lock_irq(&dev->txq.lock); 1478 spin_lock_irq(&dev->txq.lock);
1472 /* don't autosuspend while transmitting */ 1479 /* don't autosuspend while transmitting */
1473 if (dev->txq.qlen && (message.event & PM_EVENT_AUTO)) { 1480 if (dev->txq.qlen && PMSG_IS_AUTO(message)) {
1474 spin_unlock_irq(&dev->txq.lock); 1481 spin_unlock_irq(&dev->txq.lock);
1475 return -EBUSY; 1482 return -EBUSY;
1476 } else { 1483 } else {