[Qemu-devel] [PATCH] hw/arm/aspeed_soc: Mark devices as user_creatable = false

Thomas Huth posted 1 patch 6 years, 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/1503406059-7280-1-git-send-email-thuth@redhat.com
Test FreeBSD passed
Test checkpatch passed
Test docker passed
Test s390x passed
hw/arm/aspeed_soc.c | 2 ++
1 file changed, 2 insertions(+)
[Qemu-devel] [PATCH] hw/arm/aspeed_soc: Mark devices as user_creatable = false
Posted by Thomas Huth 6 years, 8 months ago
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


Re: [Qemu-devel] [PATCH] hw/arm/aspeed_soc: Mark devices as user_creatable = false
Posted by Cédric Le Goater 6 years, 8 months ago
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 = {
> 


Re: [Qemu-devel] [PATCH] hw/arm/aspeed_soc: Mark devices as user_creatable = false
Posted by Peter Maydell 6 years, 8 months ago
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