diff options
Diffstat (limited to 'drivers/tty/n_tty.c')
-rw-r--r-- | drivers/tty/n_tty.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c index f95569dedc88..f44f1ba762c3 100644 --- a/drivers/tty/n_tty.c +++ b/drivers/tty/n_tty.c | |||
@@ -1214,15 +1214,16 @@ static void n_tty_receive_parity_error(struct tty_struct *tty, unsigned char c) | |||
1214 | { | 1214 | { |
1215 | struct n_tty_data *ldata = tty->disc_data; | 1215 | struct n_tty_data *ldata = tty->disc_data; |
1216 | 1216 | ||
1217 | if (I_IGNPAR(tty)) | 1217 | if (I_INPCK(tty)) { |
1218 | return; | 1218 | if (I_IGNPAR(tty)) |
1219 | if (I_PARMRK(tty)) { | 1219 | return; |
1220 | put_tty_queue('\377', ldata); | 1220 | if (I_PARMRK(tty)) { |
1221 | put_tty_queue('\0', ldata); | 1221 | put_tty_queue('\377', ldata); |
1222 | put_tty_queue(c, ldata); | 1222 | put_tty_queue('\0', ldata); |
1223 | } else if (I_INPCK(tty)) | 1223 | put_tty_queue(c, ldata); |
1224 | put_tty_queue('\0', ldata); | 1224 | } else |
1225 | else | 1225 | put_tty_queue('\0', ldata); |
1226 | } else | ||
1226 | put_tty_queue(c, ldata); | 1227 | put_tty_queue(c, ldata); |
1227 | if (waitqueue_active(&tty->read_wait)) | 1228 | if (waitqueue_active(&tty->read_wait)) |
1228 | wake_up_interruptible(&tty->read_wait); | 1229 | wake_up_interruptible(&tty->read_wait); |