From fed92f5f67bcaeffa6cb6ceebf5ddfdbcaff7fb8 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 10 Jun 2013 14:36:44 +0200 Subject: termios: Notify driver about inactive transmit Returning this state in the return value leads to race conditions on SMP. The inactive state notification must be inside the critical section. --- cpukit/libcsupport/src/termios.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'cpukit') diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c index 5c489152ee..1c87e6b2c6 100644 --- a/cpukit/libcsupport/src/termios.c +++ b/cpukit/libcsupport/src/termios.c @@ -1332,6 +1332,7 @@ rtems_termios_refill_transmitter (struct rtems_termios_tty *tty) wakeUpWriterTask = true; } + (*tty->device.write) (tty->minor, NULL, 0); nToSend = 0; } else { len = tty->t_dqlen; @@ -1351,6 +1352,7 @@ rtems_termios_refill_transmitter (struct rtems_termios_tty *tty) * Buffer has become empty */ tty->rawOutBufState = rob_idle; + (*tty->device.write) (tty->minor, NULL, 0); nToSend = 0; /* @@ -1367,6 +1369,7 @@ rtems_termios_refill_transmitter (struct rtems_termios_tty *tty) /* set flag, that output has been stopped */ tty->flow_ctrl |= FL_OSTOP; tty->rawOutBufState = rob_busy; /*apm*/ + (*tty->device.write) (tty->minor, NULL, 0); nToSend = 0; } else { /* -- cgit v1.2.3