Skip to content

Commit

Permalink
tty: serial: fsl_lpuart: fix the potential risk of division or modulo…
Browse files Browse the repository at this point in the history
… by zero

[ Upstream commit fcb10ee ]

We should be very careful about the register values that will be used
for division or modulo operations, althrough the possibility that the
UARTBAUD register value is zero is very low, but we had better to deal
with the "bad data" of hardware in advance to avoid division or modulo
by zero leading to undefined kernel behavior.

Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
Link: https://lore.kernel.org/r/20210427021226.27468-1-sherry.sun@nxp.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Sherry Sun authored and gregkh committed Jul 20, 2021
1 parent 7397dab commit c96867d
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions drivers/tty/serial/fsl_lpuart.c
Expand Up @@ -2404,6 +2404,9 @@ lpuart32_console_get_options(struct lpuart_port *sport, int *baud,

bd = lpuart32_read(&sport->port, UARTBAUD);
bd &= UARTBAUD_SBR_MASK;
if (!bd)
return;

sbr = bd;
uartclk = lpuart_get_baud_clk_rate(sport);
/*
Expand Down

0 comments on commit c96867d

Please sign in to comment.