From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40913) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAWuC-00028H-Kr for qemu-devel@nongnu.org; Wed, 08 Jun 2016 02:23:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bAWu7-0008V3-If for qemu-devel@nongnu.org; Wed, 08 Jun 2016 02:23:55 -0400 Received: from mail-wm0-x22a.google.com ([2a00:1450:400c:c09::22a]:36231) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAWu6-0008Us-Tp for qemu-devel@nongnu.org; Wed, 08 Jun 2016 02:23:51 -0400 Received: by mail-wm0-x22a.google.com with SMTP id n184so165770967wmn.1 for ; Tue, 07 Jun 2016 23:23:50 -0700 (PDT) References: <1465353045-26323-1-git-send-email-zxq_yx_007@163.com> From: =?UTF-8?B?SsOpcsO0bWUgRm9yaXNzaWVy?= Message-ID: <5757B9F4.5090406@linaro.org> Date: Wed, 8 Jun 2016 08:23:48 +0200 MIME-Version: 1.0 In-Reply-To: <1465353045-26323-1-git-send-email-zxq_yx_007@163.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] hw/arm: virt uart fix List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: xiaoqiang zhao , qemu-devel@nongnu.org, peter.maydell@linaro.org Cc: qemu-discuss@nongnu.org, pbonzini@redhat.com On 06/08/2016 04:30 AM, xiaoqiang zhao wrote: > commit f0d1d2c115dffc1fbaf954d0b449db05c5eb79b1 > ("hw/char: QOM'ify pl011 model") break qemu-system-arm virt machine > if option '-machine secure=on' is provided. > > The function create_uart is called twice. So make CharDriverState pointer > a parameter to create_uart instead of hardcoded. > > Signed-off-by: xiaoqiang zhao > --- > hw/arm/virt.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) FWIW, Tested-by: Jerome Forissier Thanks! > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index 8e46137..73113cf 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -525,7 +525,7 @@ static void create_gic(VirtBoardInfo *vbi, qemu_irq *pic, int type, bool secure) > } > > static void create_uart(const VirtBoardInfo *vbi, qemu_irq *pic, int uart, > - MemoryRegion *mem) > + MemoryRegion *mem, CharDriverState *chr) > { > char *nodename; > hwaddr base = vbi->memmap[uart].base; > @@ -536,7 +536,7 @@ static void create_uart(const VirtBoardInfo *vbi, qemu_irq *pic, int uart, > DeviceState *dev = qdev_create(NULL, "pl011"); > SysBusDevice *s = SYS_BUS_DEVICE(dev); > > - qdev_prop_set_chr(dev, "chardev", serial_hds[0]); > + qdev_prop_set_chr(dev, "chardev", chr); > qdev_init_nofail(dev); > memory_region_add_subregion(mem, base, > sysbus_mmio_get_region(s, 0)); > @@ -1259,11 +1259,11 @@ static void machvirt_init(MachineState *machine) > > create_gic(vbi, pic, gic_version, vms->secure); > > - create_uart(vbi, pic, VIRT_UART, sysmem); > + create_uart(vbi, pic, VIRT_UART, sysmem, serial_hds[0]); > > if (vms->secure) { > create_secure_ram(vbi, secure_sysmem); > - create_uart(vbi, pic, VIRT_SECURE_UART, secure_sysmem); > + create_uart(vbi, pic, VIRT_SECURE_UART, secure_sysmem, serial_hds[1]); > } > > create_rtc(vbi, pic); >