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)  {  	struct n_tty_data *ldata = tty->disc_data; -	if (I_IGNPAR(tty)) -		return; -	if (I_PARMRK(tty)) { -		put_tty_queue('\377', ldata); -		put_tty_queue('\0', ldata); -		put_tty_queue(c, ldata); -	} else	if (I_INPCK(tty)) -		put_tty_queue('\0', ldata); -	else +	if (I_INPCK(tty)) { +		if (I_IGNPAR(tty)) +			return; +		if (I_PARMRK(tty)) { +			put_tty_queue('\377', ldata); +			put_tty_queue('\0', ldata); +			put_tty_queue(c, ldata); +		} else +			put_tty_queue('\0', ldata); +	} else  		put_tty_queue(c, ldata);  	if (waitqueue_active(&tty->read_wait))  		wake_up_interruptible(&tty->read_wait);  |