From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45998) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXWfb-0004he-8t for qemu-devel@nongnu.org; Fri, 26 Sep 2014 10:39:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XXWfS-0001u8-2q for qemu-devel@nongnu.org; Fri, 26 Sep 2014 10:38:51 -0400 Received: from mail-we0-x235.google.com ([2a00:1450:400c:c03::235]:51998) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXWfR-0001nC-ST for qemu-devel@nongnu.org; Fri, 26 Sep 2014 10:38:42 -0400 Received: by mail-we0-f181.google.com with SMTP id w61so7918883wes.12 for ; Fri, 26 Sep 2014 07:38:36 -0700 (PDT) Received: from yakj.usersys.redhat.com (nat-pool-mxp-t.redhat.com. [209.132.186.18]) by mx.google.com with ESMTPSA id t2sm1895454wiz.20.2014.09.26.07.38.34 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 26 Sep 2014 07:38:35 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Fri, 26 Sep 2014 16:38:07 +0200 Message-Id: <1411742290-2940-9-git-send-email-pbonzini@redhat.com> In-Reply-To: <1411742290-2940-1-git-send-email-pbonzini@redhat.com> References: <1411742290-2940-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PULL 08/11] serial: check if backed by a physical serial port at realize time List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Right now, s->poll_msl may linger at "0" value for an arbitrarily long time, until serial_update_msl is called for the first time. This is unnecessary, and will lead to the s->poll_msl field being unnecessarily migrated. We can call serial_update_msl immediately at realize time (via serial_reset) and be done with it. The memory-mapped UART was already doing that, but not the ISA and PCI variants. Regarding the delta bits, be consistent with what serial_reset does when the serial port is not backed by a physical serial port, and always clear them at reset time. Signed-off-by: Paolo Bonzini --- hw/char/serial.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/char/serial.c b/hw/char/serial.c index 847dacc..ebcacdc 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -815,6 +815,9 @@ static void serial_reset(void *opaque) s->thr_ipending = 0; s->last_break_enable = 0; qemu_irq_lower(s->irq); + + serial_update_msl(s); + s->msr &= ~UART_MSR_ANY_DELTA; } void serial_realize_core(SerialState *s, Error **errp) @@ -945,7 +948,5 @@ SerialState *serial_mm_init(MemoryRegion *address_space, memory_region_init_io(&s->io, NULL, &serial_mm_ops[end], s, "serial", 8 << it_shift); memory_region_add_subregion(address_space, base, &s->io); - - serial_update_msl(s); return s; } -- 2.1.0