| From 3ac57bbabaac5418e84baf9b61b73b0664afa8fd Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 19 May 2022 11:18:03 +0300 |
| Subject: serial: txx9: Don't allow CS5-6 |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> |
| |
| [ Upstream commit 79ac88655dc0551e3571ad16bdabdbe65d61553e ] |
| |
| Only CS7 and CS8 are supported but CSIZE is not sanitized with |
| CS5 or CS6 to CS8. |
| |
| Set CSIZE correctly so that userspace knows the effective value. |
| Incorrect CSIZE also results in miscalculation of the frame bits in |
| tty_get_char_size() or in its predecessor where the roughly the same |
| code is directly within uart_update_timeout(). |
| |
| Fixes: 1da177e4c3f4 (Linux-2.6.12-rc2) |
| Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> |
| Link: https://lore.kernel.org/r/20220519081808.3776-5-ilpo.jarvinen@linux.intel.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/tty/serial/serial_txx9.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/drivers/tty/serial/serial_txx9.c b/drivers/tty/serial/serial_txx9.c |
| index ffb3fb1bda9e..61e0b65c3aaf 100644 |
| --- a/drivers/tty/serial/serial_txx9.c |
| +++ b/drivers/tty/serial/serial_txx9.c |
| @@ -652,6 +652,8 @@ serial_txx9_set_termios(struct uart_port *port, struct ktermios *termios, |
| case CS6: /* not supported */ |
| case CS8: |
| cval |= TXX9_SILCR_UMODE_8BIT; |
| + termios->c_cflag &= ~CSIZE; |
| + termios->c_cflag |= CS8; |
| break; |
| } |
| |
| -- |
| 2.35.1 |
| |