Messages in this thread |  | | Date | Tue, 29 Sep 2009 16:55:14 +0200 | | From | Johan Hovold <> | | Subject | Re: [PATCH] USB: ftdi_sio: Remove tty->low_latency. |
| |
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
|  |