9ae3a8
From e675e8ae59a4eb6a39fa9d1f13011fd4e718ce67 Mon Sep 17 00:00:00 2001
9ae3a8
From: Fam Zheng <famz@redhat.com>
9ae3a8
Date: Thu, 18 May 2017 09:21:16 +0200
9ae3a8
Subject: [PATCH 03/18] char/serial: serial_ioport_write: Factor out common
9ae3a8
 code
9ae3a8
MIME-Version: 1.0
9ae3a8
Content-Type: text/plain; charset=UTF-8
9ae3a8
Content-Transfer-Encoding: 8bit
9ae3a8
9ae3a8
RH-Author: Fam Zheng <famz@redhat.com>
9ae3a8
Message-id: <20170518092131.16571-4-famz@redhat.com>
9ae3a8
Patchwork-id: 75295
9ae3a8
O-Subject: [RHEL-7.4 qemu-kvm PATCH v3 03/18] char/serial: serial_ioport_write: Factor out common code
9ae3a8
Bugzilla: 1451470
9ae3a8
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
9ae3a8
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
9ae3a8
RH-Acked-by: Eduardo Habkost <ehabkost@redhat.com>
9ae3a8
9ae3a8
From: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
9ae3a8
9ae3a8
These three lines are common to both FIFO and regular mode. Just factor
9ae3a8
them out to outside the if rather than replicate the same lines inside
9ae3a8
both if and else.
9ae3a8
9ae3a8
Cc: qemu-trivial@nongnu.org
9ae3a8
9ae3a8
Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
9ae3a8
Reviewed-by: Andreas Färber <afaerber@suse.de>
9ae3a8
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
9ae3a8
(cherry picked from commit b5601df7624b461759651c49ac72a189951780b9)
9ae3a8
Signed-off-by: Fam Zheng <famz@redhat.com>
9ae3a8
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
9ae3a8
---
9ae3a8
 hw/char/serial.c | 10 +++-------
9ae3a8
 1 file changed, 3 insertions(+), 7 deletions(-)
9ae3a8
9ae3a8
diff --git a/hw/char/serial.c b/hw/char/serial.c
9ae3a8
index 0d4450e..72112cc 100644
9ae3a8
--- a/hw/char/serial.c
9ae3a8
+++ b/hw/char/serial.c
9ae3a8
@@ -286,15 +286,11 @@ static void serial_ioport_write(void *opaque, hwaddr addr, uint64_t val,
9ae3a8
                     fifo8_pop(&s->xmit_fifo);
9ae3a8
                 }
9ae3a8
                 fifo8_push(&s->xmit_fifo, s->thr);
9ae3a8
-                s->thr_ipending = 0;
9ae3a8
                 s->lsr &= ~UART_LSR_TEMT;
9ae3a8
-                s->lsr &= ~UART_LSR_THRE;
9ae3a8
-                serial_update_irq(s);
9ae3a8
-            } else {
9ae3a8
-                s->thr_ipending = 0;
9ae3a8
-                s->lsr &= ~UART_LSR_THRE;
9ae3a8
-                serial_update_irq(s);
9ae3a8
             }
9ae3a8
+            s->thr_ipending = 0;
9ae3a8
+            s->lsr &= ~UART_LSR_THRE;
9ae3a8
+            serial_update_irq(s);
9ae3a8
             serial_xmit(NULL, G_IO_OUT, s);
9ae3a8
         }
9ae3a8
         break;
9ae3a8
-- 
9ae3a8
1.8.3.1
9ae3a8