From a04a0d4cf131163600ebede71d223d9d01a32511 Mon Sep 17 00:00:00 2001 From: Fam Zheng Date: Fri, 19 May 2017 00:35:09 +0200 Subject: [PATCH 04/18] char/serial: fix copy&paste error (fifo8_is_full vs empty) RH-Author: Fam Zheng Message-id: <20170519003523.21163-5-famz@redhat.com> Patchwork-id: 75360 O-Subject: [RHEL-7.3.z qemu-kvm PATCH 04/18] char/serial: fix copy&paste error (fifo8_is_full vs empty) Bugzilla: 1452332 RH-Acked-by: Paolo Bonzini RH-Acked-by: Laurent Vivier RH-Acked-by: Eduardo Habkost From: Vladimir Senkov Copy&paste error in serial.c causes a crash when attempting to read from UART (if there is no data to be read) Signed-off-by: Vladimir Senkov Reviewed-by: Peter Crosthwaite Signed-off-by: Michael Tokarev (cherry picked from commit b165b0d8e62bb65a02d7670d75ebb77a9280bde1) Signed-off-by: Fam Zheng Signed-off-by: Miroslav Rezanina --- hw/char/serial.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/char/serial.c b/hw/char/serial.c index 72112cc..3345de1 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -425,7 +425,7 @@ static uint64_t serial_ioport_read(void *opaque, hwaddr addr, unsigned size) ret = s->divider & 0xff; } else { if(s->fcr & UART_FCR_FE) { - ret = fifo8_is_full(&s->recv_fifo) ? + ret = fifo8_is_empty(&s->recv_fifo) ? 0 : fifo8_pop(&s->recv_fifo); if (s->recv_fifo.num == 0) { s->lsr &= ~(UART_LSR_DR | UART_LSR_BI); -- 1.8.3.1