aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Neukum <oliver@neukum.org>2008-12-17 22:57:35 -0500
committerDavid S. Miller <davem@davemloft.net>2008-12-22 22:54:00 -0500
commit889bd9b6dbcd426b8698c4a779dd7dbf247f57b8 (patch)
tree595b94f2691726925304887ca88fd775f46d759e
parent05a8c1cbfe368df8c0d4eff710c370d2aa10245a (diff)
net: startup race in hso driver
The flag marking a device running must be set before the URBs for recption are submitted or they may complete too early and fail to resubmit. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/usb/hso.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index c5c1aeae94fe..198ce3cf378a 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -663,10 +663,9 @@ static int hso_net_open(struct net_device *net)
663 odev->rx_buf_missing = sizeof(struct iphdr); 663 odev->rx_buf_missing = sizeof(struct iphdr);
664 spin_unlock_irqrestore(&odev->net_lock, flags); 664 spin_unlock_irqrestore(&odev->net_lock, flags);
665 665
666 hso_start_net_device(odev->parent);
667
668 /* We are up and running. */ 666 /* We are up and running. */
669 set_bit(HSO_NET_RUNNING, &odev->flags); 667 set_bit(HSO_NET_RUNNING, &odev->flags);
668 hso_start_net_device(odev->parent);
670 669
671 /* Tell the kernel we are ready to start receiving from it */ 670 /* Tell the kernel we are ready to start receiving from it */
672 netif_start_queue(net); 671 netif_start_queue(net);