From 4e4ce5b5cb10b08eeafff642b286eb302d53f7eb Mon Sep 17 00:00:00 2001 From: David Brownell Date: Fri, 17 Oct 2008 23:10:12 +0000 Subject: [PATCH] usb gadget: cdc ethernet notification bugfix commit 29bac7b7661bbbdbbd32bc1e6cedca22f260da7f upstream 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 Signed-off-by: Greg Kroah-Hartman --- drivers/usb/gadget/u_ether.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c index 3791e6271903..38a55af3e4a5 100644 --- a/drivers/usb/gadget/u_ether.c +++ b/drivers/usb/gadget/u_ether.c @@ -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); -- 2.47.3