aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/digicolor-usart.c
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>2022-05-19 11:18:01 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2022-05-19 18:32:39 +0200
commitfd63031b8c0763addcecdefe0e0c59d49646204e (patch)
tree93750a4da7eeec6c7cd2adfd2549744e72be0f10 /drivers/tty/serial/digicolor-usart.c
parentserial: uartlite: Fix BRKINT clearing (diff)
downloadlinux-dev-fd63031b8c0763addcecdefe0e0c59d49646204e.tar.xz
linux-dev-fd63031b8c0763addcecdefe0e0c59d49646204e.zip
serial: digicolor-usart: Don't allow CS5-6
Only CS7 and CS8 seem supported but CSIZE is not sanitized to CS8 in the default: block. 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: 5930cb3511df (serial: driver for Conexant Digicolor USART) Acked-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Link: https://lore.kernel.org/r/20220519081808.3776-3-ilpo.jarvinen@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to '')
-rw-r--r--drivers/tty/serial/digicolor-usart.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/tty/serial/digicolor-usart.c b/drivers/tty/serial/digicolor-usart.c
index e37a917b9dbb..af951e6a2ef4 100644
--- a/drivers/tty/serial/digicolor-usart.c
+++ b/drivers/tty/serial/digicolor-usart.c
@@ -309,6 +309,8 @@ static void digicolor_uart_set_termios(struct uart_port *port,
case CS8:
default:
config |= UA_CONFIG_CHAR_LEN;
+ termios->c_cflag &= ~CSIZE;
+ termios->c_cflag |= CS8;
break;
}