[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH] dma/i82374: avoid double creation of i82374 devic
From: |
Eduardo Habkost |
Subject: |
Re: [Qemu-ppc] [PATCH] dma/i82374: avoid double creation of i82374 device |
Date: |
Fri, 1 Sep 2017 11:30:16 -0300 |
User-agent: |
Mutt/1.8.3 (2017-05-23) |
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.
*/
--
Eduardo