On Thu, 01 Oct 2009 19:52:21 -0700 ebiederm@xxxxxxxxxxxx (Eric W. Biederman) wrote: > Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> writes: > > >> As it stands today ftdi_sio does indeed call tty_flip_buffer_push from > >> interrupt context with low_latency set and that is obviously incorrect, > >> right? > > > > It seems to do it from a work queue - or did I miss a case ? > > ftdi_sio crash quite regularly for me with 2.6.31. > > With a bunch of nasties like: > BUG: scheduling while atomic: swapper/0/0x00010000 > bad: scheduling from the idle thread! > > I don't know if I have a good backtrace as things > scrolled away faster than they were captured > but the code below looks like it may be. So it is indeed wrong. Removing the tty->low_latency = 1 will fix the crash and probably should go for stable. I'll have a deeper look at what is doing with the rest of the stuff as the driver may just be trying to be far cleverer than it needs with the newer buffer code. Alan -- 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