OSDN Git Service

usb gadget: cdc ethernet notification bugfix
authorDavid Brownell <dbrownell@users.sourceforge.net>
Sun, 7 Sep 2008 04:33:49 +0000 (21:33 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 17 Oct 2008 21:41:01 +0000 (14:41 -0700)
Bugfix for the new CDC Ethernet code:  as part of activating the
network interface's USB link, make sure its link management code
knows whether the interface is open or not.

Without this fix, the link won't work right when it's brought up
before the link is active ... because the initial notification it
sends will have the wrong link state (down, not up).  Makes it
hard to bridge these links (on the host side), among other things.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: stable <stable@kernel.org> [2.6.27]
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/gadget/u_ether.c

index dbd575a..66948b7 100644 (file)
@@ -873,6 +873,13 @@ struct net_device *gether_connect(struct gether *link)
                spin_lock(&dev->lock);
                dev->port_usb = link;
                link->ioport = dev;
+               if (netif_running(dev->net)) {
+                       if (link->open)
+                               link->open(link);
+               } else {
+                       if (link->close)
+                               link->close(link);
+               }
                spin_unlock(&dev->lock);
 
                netif_carrier_on(dev->net);