From cdee7bdfee37b774c80f698d2d4338670db7c6cb Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sat, 6 Mar 2010 22:19:53 +0100 Subject: [PATCH] hw/serial.c: fix THRE interrupt clearing UART_IIR_THRI is not a mask, but a possible value for the IIR ID. Use UART_IIR_ID to extract this value. Broken by commit 71e605f80313a632cc6714cde7bd240042dbdd95. Signed-off-by: Aurelien Jarno --- hw/serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/serial.c b/hw/serial.c index 586c3662bc..f3ec36a97e 100644 --- a/hw/serial.c +++ b/hw/serial.c @@ -541,7 +541,7 @@ static uint32_t serial_ioport_read(void *opaque, uint32_t addr) break; case 2: ret = s->iir; - if (ret & UART_IIR_THRI) { + if ((ret & UART_IIR_ID) == UART_IIR_THRI) { s->thr_ipending = 0; serial_update_irq(s); }