Re: 2.6.31-rc5 regression: Oops when USB Serial disconnected while in use

Bruno Prémont
2009-08-10T18:51:38Z

On Mon, 10 August 2009 Bruno Prémont <bonbons@linux-vserver.org> wrote:
> On Mon, 10 August 2009 Greg KH <greg@kroah.com> wrote:
> > On Mon, Aug 10, 2009 at 07:18:22PM +0200, Bruno Prémont wrote:
> > > On Mon, 10 August 2009 Greg KH <greg@kroah.com> wrote:
> > > > On Mon, Aug 10, 2009 at 11:18:29AM -0400, Alan Stern wrote:
> > > > > On Sat, 8 Aug 2009, Bruno Prémont wrote:
> > > > >
> > > > > > I tried bisecting this but bisect did end up on a fully
> > > > > > unrelated commit (which is not even being compiled into my
> > > > > > kernel). Possibly the failed bisect could be related to
> > > > > > mis-classified kernel panic/hang while pulling the USB cable
> > > > > > (there were two such panics for the whole iteration)?
> > > > > >
> > > > > > There are quite a few patches touching tty, ttyUSB and
> > > > > > friends between rc4 and now so pretty hard to guess on the
> > > > > > correct one.
> > > > > >
> > > > > > The oops always happens when I disconnect the USB serial
> > > > > > console (here the one built into Marvell SheevaPlug) while
> > > > > > having minicom connected to it.
> > > > > > During the bisection for the last few bad iterations minicom
> > > > > > got killed (segfault), the bad ones on the iteration left a
> > > > > > minicom zombie in 'D' state.
> >
> > Ok, a few questions.
> >
> > Are you pulling the device out when you have a console attached to
> > the device, or just a "normal" minicom connection with it? I can't
> > seem to duplicate this here at the moment for some reason :(
> >
> > thanks,
> >
> > greg k-h
> >
>
> The SheevaPlug has a getty running on ttyS0 (agetty 115200 ttyS0
> vt100). That ttyS0 is exported via the FTDI USB to Serial+JTag
> converter.
>
> On the laptop side (where the kernel Oopses) I see /dev/ttyUSB0 (which
> I instruct minicom to use via symlink to
> /dev/serial/by-id/usb-_SheevaPlug_JTAGKey_FT2232D_B_FTS55QK6-if01-port0 -- minicom is
> limited to 63byte length for path to tty device)
>
> I run minicom with the following parameters:
> minicom -o -c on sheeva
>
> /etc/minicom/minirc.sheeva
> pu port /etc/minicom/tty-sheeva
> pu rtscts No
>
> That is 115200 8N1, with neither hardware nor software flow control.
>
> I'm pulling the USB cable while minicom is running and agetty on the
> other side is waiting for password input. (pulling the USB cable is
> too easy - and same effect is obtained when pulling power from the
> SheevaPlug)
>
>
> I have not tried yet with a different USB serial device but will do so
> soon to see if I can reproduce it there. (the other USBSerial device I
> have is: 067b:2303 Prolific Technology, Inc. PL2303 Serial Port)

I can't reproduce with this one.

Similar setup, but instead of SheevaPlug (with it's kernel started with
console=ttyS0,115200 + agetty run by init) I just started agetty (same
parameters) on a x86 box with uart serial port (e.g. that x86 kernel
does not have console kernel parameter) and connected that one via
NullModem cable to the Prolific USBSerial converter.

In this case, no matter how often I pull the USBSerial converter there
is no Oops.

So it must be something that FTDI driver does differently from e.g.
Prolific one.

thanks,
Bruno