Re: [PATCH] usb: f_mass_storage: test whether thread is running before starting another

From: Ivaylo Dimitrov
Date: Thu Apr 07 2016 - 16:50:48 EST


Hi,

On 7.04.2016 17:46, Ivaylo Dimitrov wrote:

Hi,

On 7.04.2016 17:25, Alan Stern wrote:
On Thu, 7 Apr 2016, Michal Nazarewicz wrote:

Sounds good to me. Iâd love someone to test this patch (I sadly have no
way of doing that at the moment) and with that I can resend it with
updated message.

Ivaylo should be able to try it.


I applied the patch agains 4.6-rc1 and while it seems there is no more
oops, trying to "cd /sys/bus/platform/drivers/musb-hdrc && echo
musb-hdrc.0.auto > unbind" still results in console hang. Will try to
find time later today and put printks all over the place to see what's
going on.


The $subject patch fixes the oops in fsg, so you may add:

Tested-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@xxxxxxxxx>

However, there is another problem, this time with f_acm - if there is an open /dev/ttyGSn device, it is impossible to reboot/power down the device.

My investigation shows so far 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 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