QEMU currently aborts if the user is accidentially trying to
do something like this:
$ aarch64-softmmu/qemu-system-aarch64 -S -M integratorcp -nographic
QEMU 2.9.93 monitor - type 'help' for more information
(qemu) device_add ast2400
Unexpected error in error_set_from_qdev_prop_error()
at hw/core/qdev-properties.c:1032:
Aborted (core dumped)
The ast2400 SoC devices are clearly not creatable by the user since
they are using the serial_hds and nd_table arrays directly in their
realize function, so mark them with user_creatable = false.
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
hw/arm/aspeed_soc.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c
index 5529024..7f1be04 100644
--- a/hw/arm/aspeed_soc.c
+++ b/hw/arm/aspeed_soc.c
@@ -338,6 +338,8 @@ static void aspeed_soc_class_init(ObjectClass *oc, void *data)
sc->info = (AspeedSoCInfo *) data;
dc->realize = aspeed_soc_realize;
+ /* Reason: Uses serial_hds and nd_table in realize() directly */
+ dc->user_creatable = false;
}
static const TypeInfo aspeed_soc_type_info = {
--
1.8.3.1
On 08/22/2017 02:47 PM, Thomas Huth wrote: > QEMU currently aborts if the user is accidentially trying to > do something like this: > > $ aarch64-softmmu/qemu-system-aarch64 -S -M integratorcp -nographic > QEMU 2.9.93 monitor - type 'help' for more information > (qemu) device_add ast2400 > Unexpected error in error_set_from_qdev_prop_error() > at hw/core/qdev-properties.c:1032: > Aborted (core dumped) > > The ast2400 SoC devices are clearly not creatable by the user since > they are using the serial_hds and nd_table arrays directly in their > realize function, so mark them with user_creatable = false. yes. I suppose we don't need to instantiate such an object without the machine. And even for unit tests, we would rather use the individual controller models. > Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Cédric Le Goater <clg@kaod.org> Thanks, C. > --- > hw/arm/aspeed_soc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c > index 5529024..7f1be04 100644 > --- a/hw/arm/aspeed_soc.c > +++ b/hw/arm/aspeed_soc.c > @@ -338,6 +338,8 @@ static void aspeed_soc_class_init(ObjectClass *oc, void *data) > > sc->info = (AspeedSoCInfo *) data; > dc->realize = aspeed_soc_realize; > + /* Reason: Uses serial_hds and nd_table in realize() directly */ > + dc->user_creatable = false; > } > > static const TypeInfo aspeed_soc_type_info = { >
On 22 August 2017 at 13:47, Thomas Huth <thuth@redhat.com> wrote: > QEMU currently aborts if the user is accidentially trying to > do something like this: > > $ aarch64-softmmu/qemu-system-aarch64 -S -M integratorcp -nographic > QEMU 2.9.93 monitor - type 'help' for more information > (qemu) device_add ast2400 > Unexpected error in error_set_from_qdev_prop_error() > at hw/core/qdev-properties.c:1032: > Aborted (core dumped) > > The ast2400 SoC devices are clearly not creatable by the user since > they are using the serial_hds and nd_table arrays directly in their > realize function, so mark them with user_creatable = false. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/arm/aspeed_soc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c > index 5529024..7f1be04 100644 > --- a/hw/arm/aspeed_soc.c > +++ b/hw/arm/aspeed_soc.c > @@ -338,6 +338,8 @@ static void aspeed_soc_class_init(ObjectClass *oc, void *data) > > sc->info = (AspeedSoCInfo *) data; > dc->realize = aspeed_soc_realize; > + /* Reason: Uses serial_hds and nd_table in realize() directly */ > + dc->user_creatable = false; > } > > static const TypeInfo aspeed_soc_type_info = { > -- > 1.8.3.1 Applied to target-arm.next for 2.11, thanks. -- PMM
© 2016 - 2024 Red Hat, Inc.