On Fri, Sep 25, 2009 at 07:46:51PM +0200, Michael Trimarchi wrote: > Johan Hovold wrote: > > On Thu, Sep 24, 2009 at 08:21:07PM +0100, Alan Cox wrote: > >> ftdi_sio is correct with low_latency set as it uses a work queue to > >> process the packets received. > >> > > AFAICT it only uses the work queue if tty_buffer_request_room fails to > > allocate enough space. This being the exception, the completion > > handler normally processes the packets in interrupt context and this is > > where I get my lockdep traces (and it happens every time I hit the echo > > or throttle paths). > > > Using two urb, double buffering and schedule a tasklet to complete the > the reading phase. The usb will use the other free urb during receiving > process. > I think remove tty_latency is not a good fix. What do you say, Alan? Should ftdi_sio be rewritten so that it actually defers all processing, or should low_latency go? 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? Regards, Johan -- 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