From: Bin Meng Date: Mon, 13 Sep 2021 15:07:21 +0000 (+0100) Subject: hw/char: cadence_uart: Disable transmit when input clock is disabled X-Git-Tag: v6.2.0-rc0~104^2~21 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=62a3f63182a7cda98bdc168ed841507befca014f;p=users%2Fdwmw2%2Fqemu.git hw/char: cadence_uart: Disable transmit when input clock is disabled At present when input clock is disabled, any character transmitted to tx fifo can still show on the serial line, which is wrong. Fixes: b636db306e06 ("hw/char/cadence_uart: add clock support") Signed-off-by: Bin Meng Reviewed-by: Alistair Francis Reviewed-by: Edgar E. Iglesias Message-id: 20210901124521.30599-3-bmeng.cn@gmail.com Signed-off-by: Peter Maydell --- diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index b4b5e8a3ee..154be34992 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -327,6 +327,11 @@ static gboolean cadence_uart_xmit(void *do_not_use, GIOCondition cond, static void uart_write_tx_fifo(CadenceUARTState *s, const uint8_t *buf, int size) { + /* ignore characters when unclocked or in reset */ + if (!clock_is_enabled(s->refclk) || device_is_in_reset(DEVICE(s))) { + return; + } + if ((s->r[R_CR] & UART_CR_TX_DIS) || !(s->r[R_CR] & UART_CR_TX_EN)) { return; }