qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [Qemu-devel] [PATCH] dma/i82374: avoid double creation of


From: Markus Armbruster
Subject: Re: [Qemu-ppc] [Qemu-devel] [PATCH] dma/i82374: avoid double creation of i82374 device
Date: Fri, 01 Sep 2017 17:34:34 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Eduardo Habkost <address@hidden> writes:

> i82374 is compiled in only on ppc and sh4, so I'm CCing the
> maintainers for those architectures.
>
> On Fri, Sep 01, 2017 at 01:03:32PM +0200, Eduardo Otubo wrote:
>> When used with the following command line:
>> 
>>  ./ppc64-softmmu/qemu-system-ppc64 -S -machine 40p,accel=tcg -device i82374
>> 
>> QEMU with machine type 40p already creates the device i82374. If
>> specified in the command line, it will try to create it again, hence
>> generating the error.
>
> Which error?
>
>
>>                       One way to avoid this problem is to set
>> user_creatable=false.
>> 
>> Signed-off-by: Eduardo Otubo <address@hidden>
>
> The patch does more than just avoiding double creation: it
> prevents usage of "-device i82374" completely.
>
> Maybe nobody needs it to work with -device today (would the
> device even work?) and it is OK to set user_creatable=false until
> we fix the crash.  But we need to be sure of that.
>
>> ---
>>  hw/dma/i82374.c | 1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/hw/dma/i82374.c b/hw/dma/i82374.c
>> index 6c0f975df0..5275d822e0 100644
>> --- a/hw/dma/i82374.c
>> +++ b/hw/dma/i82374.c
>> @@ -139,6 +139,7 @@ static void i82374_class_init(ObjectClass *klass, void 
>> *data)
>>      dc->realize = i82374_realize;
>>      dc->vmsd = &vmstate_i82374;
>>      dc->props = i82374_properties;
>> +    dc->user_creatable = false;
>
> A "Reason:" comment explaining why user_creatable=false is
> mandatory.  See the comment above user_creatable declaration in
> qdev-core.h for reference.
>
> I suggest the following:
>
>     /*
>      * Reason: i82374_realize() crashes (assertion failure inside 
> isa_bus_dma()
>      *         if the device is instantiated twice.
>      */

We need to find out *why* it crashes.  Once we know, we can likely write
a better comment.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]