Revert "usb: gadget: u_ether: Replace netif_stop_queue with netif_device_detach"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Ferry Toth <ftoth@xxxxxxxxxxxxxx>

commit c50814a288dcee687285abc0cf935e9fe8928e59 upstream.

This reverts commit f49449fbc21e7e9550a5203902d69c8ae7dfd918.

This commit breaks u_ether on some setups (at least Merrifield). The fix
"usb: gadget: u_ether: Re-attach netif device to mirror detachment" party
restores u-ether. However the netif usb: remains up even usb is switched
from device to host mode. This creates problems for user space as the
interface remains in the routing table while not realy present and network
managers (connman) not detecting a network change.

Various attempts to find the root cause were unsuccesful up to now. Therefore
revert until a solution is found.

Link: https://lore.kernel.org/linux-usb/20231006141231.7220-1-hgajjar@xxxxxxxxxxxxxx/
Reported-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxx>
Reported-by: Ferry Toth <fntoth@xxxxxxxxx>
Fixes: f49449fbc21e ("usb: gadget: u_ether: Replace netif_stop_queue with netif_device_detach")
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Ferry Toth <fntoth@xxxxxxxxx>
Link: https://lore.kernel.org/r/20240620204832.24518-3-ftoth@xxxxxxxxxxxxxx
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 drivers/usb/gadget/function/u_ether.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/usb/gadget/function/u_ether.c
+++ b/drivers/usb/gadget/function/u_ether.c
@@ -1200,7 +1200,7 @@ void gether_disconnect(struct gether *li
 
 	DBG(dev, "%s\n", __func__);
 
-	netif_device_detach(dev->net);
+	netif_stop_queue(dev->net);
 	netif_carrier_off(dev->net);
 
 	/* disable endpoints, forcing (synchronous) completion


Patches currently in stable-queue which might be from ftoth@xxxxxxxxxxxxxx are

queue-6.9/revert-usb-gadget-u_ether-replace-netif_stop_queue-with-netif_device_detach.patch
queue-6.9/revert-usb-gadget-u_ether-re-attach-netif-device-to-mirror-detachment.patch




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux