From bd71062c71b1c9d6cfe33846ea9c2ab5121ae7bf Mon Sep 17 00:00:00 2001 From: joerg Date: Fri, 8 Aug 2014 14:56:04 +0000 Subject: [PATCH] MFC r269470: Avoid divide-by-zero panic when setting baudrate to 0. git-svn-id: svn://svn.freebsd.org/base/stable/9@269721 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/dev/usb/serial/umcs.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/dev/usb/serial/umcs.c b/sys/dev/usb/serial/umcs.c index c8f8ab8a0..b7174fb3b 100644 --- a/sys/dev/usb/serial/umcs.c +++ b/sys/dev/usb/serial/umcs.c @@ -1083,7 +1083,10 @@ umcs7840_calc_baudrate(uint32_t rate, uint16_t *divisor, uint8_t *clk) for (i = 0; i < umcs7840_baudrate_divisors_len - 1 && !(rate > umcs7840_baudrate_divisors[i] && rate <= umcs7840_baudrate_divisors[i + 1]); ++i); - *divisor = umcs7840_baudrate_divisors[i + 1] / rate; + if (rate == 0) + *divisor = 1; /* XXX */ + else + *divisor = umcs7840_baudrate_divisors[i + 1] / rate; /* 0x00 .. 0x70 */ *clk = i << MCS7840_DEV_SPx_CLOCK_SHIFT; return (0); -- 2.45.0