lkml.org 
[lkml]   [2021]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 323/421] tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero
    Date
    From: Sherry Sun <sherry.sun@nxp.com>

    [ Upstream commit fcb10ee27fb91b25b68d7745db9817ecea9f1038 ]

    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>
    ---
    drivers/tty/serial/fsl_lpuart.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/drivers/tty/serial/fsl_lpuart.c b/drivers/tty/serial/fsl_lpuart.c
    index 4b9f42269477..deb9d4fa9cb0 100644
    --- a/drivers/tty/serial/fsl_lpuart.c
    +++ b/drivers/tty/serial/fsl_lpuart.c
    @@ -1992,6 +1992,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 = clk_get_rate(sport->clk);
    /*
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-19 18:39    [W:4.080 / U:0.736 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site