Messages in this thread Patch in this message | | | Subject | [PATCH 2.6] serial send_break duration fix | From | Paul Fulghum <> | Date | Thu, 21 Oct 2004 14:58:52 -0500 |
| |
Fix tty_io.c send_break() to assert break for proper duration. If driver break_ctl() changes task state, then break may end prematurely. USB serial driver break_ctl() sends a URB, changing task state to TASK_RUNNING.
Signed-off-by: Paul Fulghum <paulkf@microgate.com>
--- linux-2.6.8/drivers/char/tty_io.c 2004-08-14 00:37:15.000000000 -0500 +++ b/drivers/char/tty_io.c 2004-10-20 21:31:55.000000000 -0500 @@ -1703,11 +1703,11 @@ static int tiocsetd(struct tty_struct *t static int send_break(struct tty_struct *tty, int duration) { - set_current_state(TASK_INTERRUPTIBLE); - tty->driver->break_ctl(tty, -1); - if (!signal_pending(current)) + if (!signal_pending(current)) { + set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(duration); + } tty->driver->break_ctl(tty, 0); if (signal_pending(current)) return -EINTR;
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |