TTY: Report warning when low_latency flag is wrongly used
authorIvo Sieben <meltedpianoman@gmail.com>
Wed, 24 Oct 2012 12:35:42 +0000 (14:35 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 24 Oct 2012 18:21:32 +0000 (11:21 -0700)
When a driver has the low_latency flag set and uses the schedule_flip()
function to initiate copying data to the line discipline, a workqueue is
scheduled in but never actually flushed. This is incorrect use of the
low_latency flag (driver should not support the low_latency flag, or use
the tty_flip_buffer_push() function instead). Make sure a warning is
reported to catch incorrect use of the low_latency flag.

This patch goes with: cee4ad1ed90a0959fc29f9d30a2526e5e9522cfa

Signed-off-by: Ivo Sieben <meltedpianoman@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/tty_buffer.c

index 06725f5cc819aa98362ec87e41fa3c4c9418e9b6..6cf87d7afb7efb14264b7a20c7394a99adbb7946 100644 (file)
@@ -365,6 +365,7 @@ void tty_schedule_flip(struct tty_struct *tty)
 {
        struct tty_bufhead *buf = &tty->port->buf;
        unsigned long flags;
+       WARN_ON(tty->low_latency);
 
        spin_lock_irqsave(&buf->lock, flags);
        if (buf->tail != NULL)