]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
serial: digicolor-usart: Don't allow CS5-6
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Thu, 19 May 2022 08:18:01 +0000 (11:18 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 May 2022 16:32:39 +0000 (18:32 +0200)
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>
drivers/tty/serial/digicolor-usart.c

index e37a917b9dbbc77f6d69045f8d851fe5a79c7c65..af951e6a2ef4e2d7fc4ec2a0fc03cc80c3eb2209 100644 (file)
@@ -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;
        }