summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Orishko <alexey.orishko@gmail.com>2012-03-14 04:00:24 +0000
committerDavid S. Miller <davem@davemloft.net>2012-03-16 22:50:19 -0700
commit1aa9bc5b2f4cf8c48944fb9a607bf1dd674e2c10 (patch)
tree8ccaee8f80b2db29d52554333af82711bf1a5f0b
parent6a228452d11eaf1f1577261540ec0903a2af7f61 (diff)
downloadlinux-3.10-1aa9bc5b2f4cf8c48944fb9a607bf1dd674e2c10.tar.gz
linux-3.10-1aa9bc5b2f4cf8c48944fb9a607bf1dd674e2c10.tar.bz2
linux-3.10-1aa9bc5b2f4cf8c48944fb9a607bf1dd674e2c10.zip
usbnet: use netif_tx_wake_queue instead of netif_start_queue
If host is going to autosuspend function with two interfaces and if IP packet has arrived in-between of two usbnet_suspend() callbacks, i.e usbnet_resume() is called in-between, tx data flow is stopped. When autosuspend timer expires and device is put to autosuspend again, tx queue is waked up and data can be sent again. This behavior might be repeated several times in a row. Tested on Intel/ARM. Reviewed-by: Sjur Brændeland <sjur.brandeland@stericsson.com> Tested-by: Dmitry Tarnyagin <dmitry.tarnyagin@stericsson.com> Signed-off-by: Alexey Orishko <alexey.orishko@stericsson.com> Acked-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/usb/usbnet.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 83dcc530618..5394b4eb00b 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1535,7 +1535,7 @@ int usbnet_resume (struct usb_interface *intf)
if (test_bit(EVENT_DEV_OPEN, &dev->flags)) {
if (!(dev->txq.qlen >= TX_QLEN(dev)))
- netif_start_queue(dev->net);
+ netif_tx_wake_all_queues(dev->net);
tasklet_schedule (&dev->bh);
}
}