diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2022-02-20 13:47:29 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2022-02-23 11:15:44 +0100 |
commit | dd069035be60469d49b76ae48856db2dc357bc4f (patch) | |
tree | aa467dc798128836aea2143b5f740b891003bbb4 /drivers/serial | |
parent | 203d97c81e9c9a2f5bcc268d9399899a306cb722 (diff) | |
download | barebox-dd069035be60469d49b76ae48856db2dc357bc4f.tar.gz |
serial: stm32: bail if clock_get_rate returns zero
While this shouldn't happen in a well-behaving system, with SCMI barebox
may become dependent on the firmware to provide a non-zero rate here.
Sanitize the value to avoid a division -by-zero.
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20220220124736.3052502-18-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/serial_stm32.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/serial/serial_stm32.c b/drivers/serial/serial_stm32.c index 271897f174..f1d4c6de90 100644 --- a/drivers/serial/serial_stm32.c +++ b/drivers/serial/serial_stm32.c @@ -41,6 +41,8 @@ static int stm32_serial_setbaudrate(struct console_device *cdev, int baudrate) unsigned long clock_rate; clock_rate = clk_get_rate(stm32->clk); + if (!clock_rate) + return -EINVAL; int_div = DIV_ROUND_CLOSEST(clock_rate, baudrate); |