aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorDmitry Artamonow <mad_soft@inbox.ru>2010-10-28 13:31:58 -0400
committerDavid S. Miller <davem@davemloft.net>2010-10-28 14:47:52 -0400
commit349f6c5c5d827db909a69e5b9e844e8623c8e881 (patch)
tree137b4282105f58a806315c4515dd3c792fcd7d7a /drivers/usb
parent4aa2c466a7733af093a526e9d1cdd0b3b90d47e9 (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/usb')
-rw-r--r--drivers/usb/gadget/u_ether.c2
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