Avoid a divide-by-zero panic when setting the baudrate to 0.

MFC after:	2 weeks
This commit is contained in:
joerg 2014-08-03 10:47:45 +00:00
parent 8ad922d14d
commit 120a212c4b

View File

@ -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);