On Thu, Aug 9, 2012 at 1:26 AM, Felipe Balbi <balbi@xxxxxx> wrote: > I have applied this one instead: > > commit a3ab51013e6af38b3e2f9f20bf469cf8c595391b > Author: Michael Grzeschik <m.grzeschik@xxxxxxxxxxxxxx> > Date: Wed Aug 8 11:48:10 2012 +0200 > > usb: gadget: u_ether: fix kworker 100% CPU issue with still used interfaces in eth_stop > > This patch fixes an issue introduced by patch: > > 72c973d usb: gadget: add usb_endpoint_descriptor to struct usb_ep > > Without this patch we see a kworker taking 100% CPU, after this sequence: > > - Connect gadget to a windows host > - load g_ether > - ifconfig up <ip>; ifconfig down; ifconfig up > - ping <windows host> > > The "ifconfig down" results in calling eth_stop(), which will call > usb_ep_disable() and, if the carrier is still ok, usb_ep_enable(): [snip] > does it solve the issue you found ? I have verified that it solves the simple up/down/up kworker hang, which was the only problem I actually saw on my board. So for that problem: Tested-by: Kevin Cernekee <cernekee@xxxxxxxxx> I'm not sure if it solves the various other (hypothetical?) races in u_ether between up/down and connect/disconnect. It might be interesting to run ifconfig up/down in a loop overnight, while toggling VBUS every couple of seconds. -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html