USB: serial: f81232: fix division by zero on line-speed change
Subsystems (3)
Johan Hovold
maintainerPATCH 1/1 USB: serial: f81232: fix division by zero on line-speed change
The driver leaves the line speed unchanged in case a requested speed is not supported. Make sure to handle the case where the current speed is B0 (hangup) without dividing by zero when determining the clock source.
Fixes 268ddb5e9b62 ("USB: serial: f81232: add high baud rate support")
Cc [email protected] # 5.2
Cc Ji-Ze Hong (Peter Hong) <[email protected]>
Signed-off-by Johan Hovold <[email protected]>
--- drivers/usb/serial/f81232.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
drivers/usb/serial/f81232.c +7 -5
@@ -130,9 +130,6 @@ static u8 const clock_table[] = { F81232_CLK_1_846_MHZ, F81232_CLK_14_77_MHZ,static int calc_baud_divisor (speed_t baudrate,speed_t clockrate) { -if (!baudrate) -return 0 ; -return DIV_ROUND_CLOSEST (clockrate, baudrate); }
@@ -498,9 +495,14 @@ static void f81232_set_baudrate(struct tty_struct *tty,speed_t baud_list[] = { baudrate, old_baudrate,F81232_DEF_BAUDRATE };for (i =0 ; i <ARRAY_SIZE (baud_list); ++i) { - idx =f81232_find_clk (baud_list[i]); + baudrate = baud_list[i]; +if (baudrate ==0 ) { +tty_encode_baud_rate (tty,0 ,0 ); +return ; + } + + idx =f81232_find_clk (baudrate);if (idx >=0 ) { - baudrate = baud_list[i];tty_encode_baud_rate (tty, baudrate, baudrate);break ; }
Signature · 1 line
2.37.4
Quoted 8 lines · Johan Hovold
The driver leaves the line speed unchanged in case a requested speed is not supported. Make sure to handle the case where the current speed is B0 (hangup) without dividing by zero when determining the clock source.
Fixes 268ddb5e9b62 ("USB: serial: f81232: add high baud rate support")Cc [email protected] # 5.2Cc Ji-Ze Hong (Peter Hong) <[email protected]>Signed-off-by Johan Hovold <[email protected]>
Reviewed-by Greg Kroah-Hartman <[email protected]>