* [PATCH] serial: Fix crash if the minimum rate of the device is > 9600 baud
@ 2010-01-04 16:26 Alan Cox
2010-01-15 18:58 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Alan Cox @ 2010-01-04 16:26 UTC (permalink / raw)
To: greg, linux-serial
(Resend for -next)
In that situation if the old rate is invalid and the new rate is invalid
and the chip cannot do 9600 baud we report zero, which makes all the
drivers explode.
Instead force the rate based on min/max
Signed-off-by: Alan Cox <alan@linux.intel.com>
---
drivers/serial/serial_core.c | 17 ++++++++++++-----
1 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c
index fa4f170..07fe320 100644
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
@@ -385,13 +385,20 @@ uart_get_baud_rate(struct uart_port *port, struct ktermios *termios,
}
/*
- * As a last resort, if the quotient is zero,
- * default to 9600 bps
+ * As a last resort, if the range cannot be met then clip to
+ * the nearest chip supported rate.
*/
- if (!hung_up)
- tty_termios_encode_baud_rate(termios, 9600, 9600);
+ if (!hung_up) {
+ if (baud <= min)
+ tty_termios_encode_baud_rate(termios,
+ min + 1, min + 1);
+ else
+ tty_termios_encode_baud_rate(termios,
+ max - 1, max - 1);
+ }
}
-
+ /* Should never happen */
+ WARN_ON(1);
return 0;
}
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] serial: Fix crash if the minimum rate of the device is > 9600 baud
2010-01-04 16:26 [PATCH] serial: Fix crash if the minimum rate of the device is > 9600 baud Alan Cox
@ 2010-01-15 18:58 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2010-01-15 18:58 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-serial
On Mon, Jan 04, 2010 at 04:26:21PM +0000, Alan Cox wrote:
>
> (Resend for -next)
>
> In that situation if the old rate is invalid and the new rate is invalid
> and the chip cannot do 9600 baud we report zero, which makes all the
> drivers explode.
>
> Instead force the rate based on min/max
Is this something that should go into 2.6.33 and backport to older
kernels?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-01-15 20:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-04 16:26 [PATCH] serial: Fix crash if the minimum rate of the device is > 9600 baud Alan Cox
2010-01-15 18:58 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox