summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-10-07 14:51:39 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-10-07 15:09:47 +0200
commitff7217b2f02380c52381f6e18cc4abdf1633de49 (patch)
tree68d46ffae84ac17e55f0d0651649b574d8f102cc
parent74f5eaffb920390a7a33da6f7ed4a9fa96ccc286 (diff)
downloadrtems-ff7217b2f02380c52381f6e18cc4abdf1633de49.tar.bz2
termios: Fix transmit daemon
Do not call rtems_termios_refill_transmitter() in case a PPP line discipline is present. This is similar to rtems_termios_dequeue_characters().
-rw-r--r--cpukit/libcsupport/src/termios.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/cpukit/libcsupport/src/termios.c b/cpukit/libcsupport/src/termios.c
index 33cbacbc74..52171a14b3 100644
--- a/cpukit/libcsupport/src/termios.c
+++ b/cpukit/libcsupport/src/termios.c
@@ -1785,7 +1785,7 @@ rtems_termios_dequeue_characters (void *ttyp, int len)
if (tty->t_line == PPPDISC ) {
/*
- * call any line discipline start function
+ * call PPP line discipline start function
*/
if (rtems_termios_linesw[tty->t_line].l_start != NULL) {
rtems_termios_linesw[tty->t_line].l_start(tty);
@@ -1824,6 +1824,14 @@ static rtems_task rtems_termios_txdaemon(rtems_task_argument argument)
*/
if (rtems_termios_linesw[tty->t_line].l_start != NULL) {
rtems_termios_linesw[tty->t_line].l_start(tty);
+
+ if (tty->t_line == PPPDISC) {
+ /*
+ * Do not call rtems_termios_refill_transmitter() in this case similar
+ * to rtems_termios_dequeue_characters().
+ */
+ continue;
+ }
}
/*