diff options
author | Dmitry Artamonow <mad_soft@inbox.ru> | 2010-10-28 13:31:58 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-10-28 14:47:52 -0400 |
commit | 349f6c5c5d827db909a69e5b9e844e8623c8e881 (patch) | |
tree | 137b4282105f58a806315c4515dd3c792fcd7d7a /drivers | |
parent | 4aa2c466a7733af093a526e9d1cdd0b3b90d47e9 (diff) |
USB: gadget: fix ethernet gadget crash in gether_setup
Crash is triggered by commit e6484930d7 ("net: allocate tx queues in
register_netdevice"), which moved tx netqueue creation into register_netdev.
So now calling netif_stop_queue() before register_netdev causes an oops.
Move netif_stop_queue() after net device registration to fix crash.
Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/gadget/u_ether.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c index 6bb876d65252..cb23355f52d3 100644 --- a/drivers/usb/gadget/u_ether.c +++ b/drivers/usb/gadget/u_ether.c | |||
@@ -797,7 +797,6 @@ int gether_setup(struct usb_gadget *g, u8 ethaddr[ETH_ALEN]) | |||
797 | * - iff DATA transfer is active, carrier is "on" | 797 | * - iff DATA transfer is active, carrier is "on" |
798 | * - tx queueing enabled if open *and* carrier is "on" | 798 | * - tx queueing enabled if open *and* carrier is "on" |
799 | */ | 799 | */ |
800 | netif_stop_queue(net); | ||
801 | netif_carrier_off(net); | 800 | netif_carrier_off(net); |
802 | 801 | ||
803 | dev->gadget = g; | 802 | dev->gadget = g; |
@@ -812,6 +811,7 @@ int gether_setup(struct usb_gadget *g, u8 ethaddr[ETH_ALEN]) | |||
812 | INFO(dev, "MAC %pM\n", net->dev_addr); | 811 | INFO(dev, "MAC %pM\n", net->dev_addr); |
813 | INFO(dev, "HOST MAC %pM\n", dev->host_mac); | 812 | INFO(dev, "HOST MAC %pM\n", dev->host_mac); |
814 | 813 | ||
814 | netif_stop_queue(net); | ||
815 | the_dev = dev; | 815 | the_dev = dev; |
816 | } | 816 | } |
817 | 817 | ||