summaryrefslogtreecommitdiffstats
path: root/c/src/libchip/serial/z85c30.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/libchip/serial/z85c30.c')
-rw-r--r--c/src/libchip/serial/z85c30.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/c/src/libchip/serial/z85c30.c b/c/src/libchip/serial/z85c30.c
index 4b1b4227b6..1f43271dd0 100644
--- a/c/src/libchip/serial/z85c30.c
+++ b/c/src/libchip/serial/z85c30.c
@@ -437,6 +437,7 @@ Z85C30_STATIC int z85c30_set_attributes(
uint32_t wr4;
uint32_t wr5;
int baud_requested;
+ uint32_t baud_number;
setRegister_f setReg;
rtems_interrupt_level Irql;
@@ -445,15 +446,20 @@ Z85C30_STATIC int z85c30_set_attributes(
/*
* Calculate the baud rate divisor
+ *
+ * Assert ensures there is no division by 0.
*/
baud_requested = t->c_cflag & CBAUD;
if (!baud_requested)
baud_requested = B9600; /* default to 9600 baud */
+ baud_number = (uint32_t) rtems_termios_baud_to_number( baud_requested );
+ _Assert( baud_number != 0 );
+
ulBaudDivisor = Z85C30_Baud(
(uint32_t) Console_Port_Tbl[minor]->ulClock,
- (uint32_t) rtems_termios_baud_to_number( baud_requested )
+ baud_number
);
wr3 = SCC_WR3_RX_EN;