diff --git a/subsys/modbus/modbus_serial.c b/subsys/modbus/modbus_serial.c index 5e748b08beb..06e44bd2414 100644 --- a/subsys/modbus/modbus_serial.c +++ b/subsys/modbus/modbus_serial.c @@ -404,13 +404,15 @@ static void cb_handler_tx(struct modbus_context *ctx) static void uart_cb_handler(const struct device *dev, void *app_data) { struct modbus_context *ctx = (struct modbus_context *)app_data; - struct modbus_serial_config *cfg = ctx->cfg; + struct modbus_serial_config *cfg; if (ctx == NULL) { LOG_ERR("Modbus hardware is not properly initialized"); return; } + cfg = ctx->cfg; + while (uart_irq_update(cfg->dev) && uart_irq_is_pending(cfg->dev)) { if (uart_irq_rx_ready(cfg->dev)) {