summaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/serial_core.c
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2023-10-10 01:59:22 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2023-10-16 20:15:41 +0200
commit23bf72faaebdf2cb199c0ef8cf96467b10904b35 (patch)
treed7cf2cab4278bfe6d7906c979a5b3eaf64c00481 /drivers/tty/serial/serial_core.c
parent1ed59c5e17936c8f3a0fb7b4217af0b73298d2d7 (diff)
downloadlinux-stable-23bf72faaebdf2cb199c0ef8cf96467b10904b35.tar.gz
linux-stable-23bf72faaebdf2cb199c0ef8cf96467b10904b35.tar.bz2
linux-stable-23bf72faaebdf2cb199c0ef8cf96467b10904b35.zip
serial: core: tidy invalid baudrate handling in uart_get_baud_rate
uart_get_baud_rate has input parameters 'min' and 'max' limiting the range of acceptable baud rates from the caller's perspective. If neither current or old termios structures have acceptable baud rate setting and 9600 is not in the min/max range either the function returns 0 and issues a warning. However for a UART that does not support speed of 9600 baud this is expected behavior. Clarify that 0 can be (and always could be) returned from the uart_get_baud_rate. Don't issue a warning in that case. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> Link: https://lore.kernel.org/r/20231010085926.1021667-2-jcmvbkbc@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/serial_core.c')
-rw-r--r--drivers/tty/serial/serial_core.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 980abb44cf82..b106eb3943d0 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -431,7 +431,7 @@ EXPORT_SYMBOL(uart_update_timeout);
* baud.
*
* If the new baud rate is invalid, try the @old termios setting. If it's still
- * invalid, we try 9600 baud.
+ * invalid, we try 9600 baud. If that is also invalid 0 is returned.
*
* The @termios structure is updated to reflect the baud rate we're actually
* going to be using. Don't do this for the case where B0 is requested ("hang
@@ -515,8 +515,6 @@ uart_get_baud_rate(struct uart_port *port, struct ktermios *termios,
max - 1, max - 1);
}
}
- /* Should never happen */
- WARN_ON(1);
return 0;
}
EXPORT_SYMBOL(uart_get_baud_rate);