diff options
author | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2012-01-09 02:38:23 -0500 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2012-01-09 02:38:23 -0500 |
commit | da733563be5a9da26fe81d9f007262d00b846e22 (patch) | |
tree | db28291df94a2043af2123911984c5c173da4e6f /drivers/net/usb/usbnet.c | |
parent | 6ccbcf2cb41131f8d56ef0723bf3f7c1f8486076 (diff) | |
parent | dab78d7924598ea4031663dd10db814e2e324928 (diff) |
Merge branch 'next' into for-linus
Diffstat (limited to 'drivers/net/usb/usbnet.c')
-rw-r--r-- | drivers/net/usb/usbnet.c | 9 |
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 { |