diff options
author | Oliver Neukum <oliver@neukum.org> | 2008-12-18 04:57:35 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-23 04:54:00 +0100 |
commit | 889bd9b6dbcd426b8698c4a779dd7dbf247f57b8 (patch) | |
tree | 595b94f2691726925304887ca88fd775f46d759e /drivers/net/usb/hso.c | |
parent | pkt_sched: Remove smp_wmb() in qdisc_watchdog() (diff) | |
download | linux-889bd9b6dbcd426b8698c4a779dd7dbf247f57b8.tar.xz linux-889bd9b6dbcd426b8698c4a779dd7dbf247f57b8.zip |
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>
Diffstat (limited to 'drivers/net/usb/hso.c')
-rw-r--r-- | drivers/net/usb/hso.c | 3 |
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) odev->rx_buf_missing = sizeof(struct iphdr); spin_unlock_irqrestore(&odev->net_lock, flags); - hso_start_net_device(odev->parent); - /* We are up and running. */ set_bit(HSO_NET_RUNNING, &odev->flags); + hso_start_net_device(odev->parent); /* Tell the kernel we are ready to start receiving from it */ netif_start_queue(net); |