From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ivaylo Dimitrov Subject: Re: USB gadgets with configfs hang reboot Date: Fri, 8 Apr 2016 23:13:57 +0300 Message-ID: <57081105.2050206@gmail.com> References: <20160115224839.GA19432@atomide.com> <569A1E32.1020502@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <569A1E32.1020502-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> Sender: linux-usb-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Tony Lindgren , Felipe Balbi Cc: linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Greg Kroah-Hartman , Robert Baldyga , Andrzej Pietrasiewicz , Alan Stern , Michal Nazarewicz List-Id: linux-omap@vger.kernel.org Hi, On 16.01.2016 12:40, Ivaylo Dimitrov wrote: > Hi, > > On 16.01.2016 00:48, Tony Lindgren wrote: >> Hi all, >> >> Looks like there's some issue with the USB gadgets and configfs. >> >> I'm seeing rmmod of the UDC driver cause a warning and then reboot >> hangs the system. This happens at least with v4.4, and I've reproduced >> it with dwc3 and musb so it seems to be generic. >> > > Having configfs is not needed, disabling usb gadgets (# > CONFIG_USB_MUSB_GADGET is not set) seems to solved at least poweroff > hang issue on N900. Also, g_nokia is not a module in the config I use, > so I guess the problem is not related whether gadgets are modular or > not. Unfortunately I was not able to test reboot, as rootfs became > corrupted after the first poweroff :( . So it looks like my theory that > onenand corruption on N900 is because poweroff/reboot hangs is wrong. (copied from "Re: [PATCH] usb: f_mass_storage: test whether thread is running before starting another" thread) Yet another problem with USB gadget, this time with f_acm - if there is an open /dev/ttyGSn device, it is impossible to reboot/power down the device. My investigation shown that there is a process(pnatd) that opens /dev/ttyGSn devices, so gserial_free_port() hangs on wait_event(port->close_wait, gs_closed(port)); if I do "cd /sys/bus/platform/drivers/musb-hdrc && echo musb-hdrc.0.auto > unbind". Unfortunately I don't have serial debug port connector on my N900, so I can't capture logs after the reboot command, however, I suspect it hangs on the same place as with unbind. That looks weird, as one would expect that close() is called when the kernel kills user processes on reboot/powerdown. Ivo -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html