From: Thomas Huth <thuth@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Beniamino Galvani <b.galvani@gmail.com>,
qemu-arm <qemu-arm@nongnu.org>,
QEMU Developers <qemu-devel@nongnu.org>,
Li Guang <lig.fnst@cn.fujitsu.com>
Subject: Re: [Qemu-devel] [PATCH] hw/arm/allwinner: Fix crash with -nodefaults -M cubieboard
Date: Tue, 22 Aug 2017 12:07:29 +0200 [thread overview]
Message-ID: <f7b75c78-1db3-7e82-d5cb-9cd8266077a9@redhat.com> (raw)
In-Reply-To: <CAFEAcA_F1iFu8cbKCyxnjZP+hVY9DkrJZXHqZ65G10BqzcapQw@mail.gmail.com>
On 18.08.2017 19:14, Peter Maydell wrote:
> On 18 August 2017 at 18:08, Thomas Huth <thuth@redhat.com> wrote:
>> The allwinner-a10 device uses serial_hds[0] without checking whether
>> it is available or not. So using the cubieboard with -nodefaults
>> currently results in a segmentation fault. Fix it by adding a
>> proper check here.
>> And while we're at it, mark the device as "user_creatable = false"
>> since this apparently can not directly be used by the users but has
>> to be wired up in code instead.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>> hw/arm/allwinner-a10.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c
>> index f62a9a3..e152566 100644
>> --- a/hw/arm/allwinner-a10.c
>> +++ b/hw/arm/allwinner-a10.c
>> @@ -109,8 +109,10 @@ static void aw_a10_realize(DeviceState *dev, Error **errp)
>> sysbus_connect_irq(SYS_BUS_DEVICE(&s->sata), 0, s->irq[56]);
>>
>> /* FIXME use a qdev chardev prop instead of serial_hds[] */
>> - serial_mm_init(get_system_memory(), AW_A10_UART0_REG_BASE, 2, s->irq[1],
>> - 115200, serial_hds[0], DEVICE_NATIVE_ENDIAN);
>> + if (serial_hds[0]) {
>> + serial_mm_init(get_system_memory(), AW_A10_UART0_REG_BASE, 2, s->irq[1],
>> + 115200, serial_hds[0], DEVICE_NATIVE_ENDIAN);
>> + }
>
> This doesn't look like the right fix, because it means that
> there won't be a UART device at that point in system memory
> at all. What you want is for there to be a UART device there
> but not connected to anything, ie serial_mm_init() should cope
> with being passed a NULL Chardev*.
OK, makes sense. ... but I guess the patch to fix serial_mm_init() is
going to be a bigger patch, since serial_realize_core() currently
expects a char device, too, and thus needs to be reworked, too ... I'll
try to come up with something when I've got some more spare time...
Thomas
prev parent reply other threads:[~2017-08-22 10:07 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-18 17:08 [Qemu-devel] [PATCH] hw/arm/allwinner: Fix crash with -nodefaults -M cubieboard Thomas Huth
2017-08-18 17:14 ` Peter Maydell
2017-08-22 10:07 ` Thomas Huth [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f7b75c78-1db3-7e82-d5cb-9cd8266077a9@redhat.com \
--to=thuth@redhat.com \
--cc=b.galvani@gmail.com \
--cc=lig.fnst@cn.fujitsu.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).