Re: [PATCH 1/2] usb: gadget: u_ether: Do not make UDC parent of the net device

From: Sascha Hauer
Date: Fri Feb 10 2023 - 09:49:55 EST


On Thu, Feb 09, 2023 at 10:05:35AM -0500, Alan Stern wrote:
> On Thu, Feb 09, 2023 at 12:41:03PM +0100, Sascha Hauer wrote:
> > I just checked on the host side: With or without my patch I get
> > NO-CARRIER on the host. I have to do a 'ip link set usb0 up' on
> > the device side, with that I get a <BROADCAST,MULTICAST,UP,LOWER_UP>
> > on the host side.
> >
> > Could it be that my patch breaks something on the device side that
> > prevents the device from bringing the link up?
>
> Sascha:
>
> When you first posted your original patch, I wondered if it was really
> the right thing to do. Making the net device not be a child of the UDC
> device means you can (in theory) have strange behavior such as the
> kernel suspending the USB device controller while expecting the network
> interface to keep on working.
>
> Is there a different way of solving the original problem?

I don't know which. One thing would be to couple the lifetime of the
ethernet device to the lifetime of the UDC, but the result would look
different to userspace, so wouldn't be ideal either.

Note the original reason doing this change was that we saw backtraces
when doing a 'reboot -f', the 'rmmod dummy_hcd' was just an easy
reproducer for the problem.

One other possibility might be to take a reference to the UDC while
it is in use so that the module can't be rmmoded. Not sure if that fixes
my original problem though.

Sascha

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |