diff options
Diffstat (limited to 'arch/um')
-rw-r--r-- | arch/um/drivers/chan_kern.c | 17 | ||||
-rw-r--r-- | arch/um/drivers/line.c | 2 |
2 files changed, 4 insertions, 15 deletions
diff --git a/arch/um/drivers/chan_kern.c b/arch/um/drivers/chan_kern.c index c3bba73e4be6..e9a0abc6a32f 100644 --- a/arch/um/drivers/chan_kern.c +++ b/arch/um/drivers/chan_kern.c | |||
@@ -83,21 +83,8 @@ static const struct chan_ops not_configged_ops = { | |||
83 | 83 | ||
84 | static void tty_receive_char(struct tty_struct *tty, char ch) | 84 | static void tty_receive_char(struct tty_struct *tty, char ch) |
85 | { | 85 | { |
86 | if (tty == NULL) | 86 | if (tty) |
87 | return; | 87 | tty_insert_flip_char(tty, ch, TTY_NORMAL); |
88 | |||
89 | if (I_IXON(tty) && !I_IXOFF(tty) && !tty->raw) { | ||
90 | if (ch == STOP_CHAR(tty)) { | ||
91 | stop_tty(tty); | ||
92 | return; | ||
93 | } | ||
94 | else if (ch == START_CHAR(tty)) { | ||
95 | start_tty(tty); | ||
96 | return; | ||
97 | } | ||
98 | } | ||
99 | |||
100 | tty_insert_flip_char(tty, ch, TTY_NORMAL); | ||
101 | } | 88 | } |
102 | 89 | ||
103 | static int open_one_chan(struct chan *chan) | 90 | static int open_one_chan(struct chan *chan) |
diff --git a/arch/um/drivers/line.c b/arch/um/drivers/line.c index fd9a15b318af..9ffc28bd4b7a 100644 --- a/arch/um/drivers/line.c +++ b/arch/um/drivers/line.c | |||
@@ -584,6 +584,8 @@ int register_lines(struct line_driver *line_driver, | |||
584 | printk(KERN_ERR "register_lines : can't register %s driver\n", | 584 | printk(KERN_ERR "register_lines : can't register %s driver\n", |
585 | line_driver->name); | 585 | line_driver->name); |
586 | put_tty_driver(driver); | 586 | put_tty_driver(driver); |
587 | for (i = 0; i < nlines; i++) | ||
588 | tty_port_destroy(&lines[i].port); | ||
587 | return err; | 589 | return err; |
588 | } | 590 | } |
589 | 591 | ||