char/serial: fix copy&paste error (fifo8_is_full vs empty)
authorVladimir Senkov <hangup@gmail.com>
Mon, 17 Jun 2013 00:30:52 +0000 (20:30 -0400)
committerMichael Tokarev <mjt@tls.msk.ru>
Mon, 17 Jun 2013 08:57:50 +0000 (12:57 +0400)
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 <hangup@gmail.com>
Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/char/serial.c

index b537e42..6382f98 100644 (file)
@@ -424,7 +424,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);