diff mbox series

hw/isa/pc87312: Mark the device with user_creatable = false

Message ID 1505293637-10450-1-git-send-email-thuth@redhat.com
State New
Headers show
Series hw/isa/pc87312: Mark the device with user_creatable = false | expand

Commit Message

Thomas Huth Sept. 13, 2017, 9:07 a.m. UTC
QEMU currently aborts if you try to use the device at the command
line:

$ ppc64-softmmu/qemu-system-ppc64 -S -machine prep -device pc87312
Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:222:
qemu-system-ppc64: -device pc87312: Device 'parallel0' is in use
Aborted (core dumped)

It uses parallel_hds in its realize function, so I can not be
instantiated by the user again.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 hw/isa/pc87312.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Hervé Poussineau Sept. 13, 2017, 9:08 p.m. UTC | #1
Le 13/09/2017 à 11:07, Thomas Huth a écrit :
> QEMU currently aborts if you try to use the device at the command
> line:
> 
> $ ppc64-softmmu/qemu-system-ppc64 -S -machine prep -device pc87312
> Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:222:
> qemu-system-ppc64: -device pc87312: Device 'parallel0' is in use
> Aborted (core dumped)
> 
> It uses parallel_hds in its realize function, so I can not be
> instantiated by the user again.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>

Reviewed-by: Hervé Poussineau <hpoussin@reactos.org>

However, a better solution would probably to not directly use parallel_hds[0], but to add some Chardev properties to the device, and to fill them in the mainboard code.
This is noted as a "Future incompatible change" in changelog since 2.8

Hervé

> ---
>   hw/isa/pc87312.c | 2 ++
>   1 file changed, 2 insertions(+)
> 
> diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
> index 5ce9f0a..48b29e3 100644
> --- a/hw/isa/pc87312.c
> +++ b/hw/isa/pc87312.c
> @@ -386,6 +386,8 @@ static void pc87312_class_init(ObjectClass *klass, void *data)
>       dc->reset = pc87312_reset;
>       dc->vmsd = &vmstate_pc87312;
>       dc->props = pc87312_properties;
> +    /* Reason: Uses parallel_hds[0] in realize(), so it can't be used twice */
> +    dc->user_creatable = false;
>   }
>   
>   static const TypeInfo pc87312_type_info = {
>
Michael Tokarev Sept. 24, 2017, 9:09 p.m. UTC | #2
13.09.2017 12:07, Thomas Huth wrote:
> QEMU currently aborts if you try to use the device at the command
> line:
> 
> $ ppc64-softmmu/qemu-system-ppc64 -S -machine prep -device pc87312
> Unexpected error in qemu_chr_fe_init() at chardev/char-fe.c:222:
> qemu-system-ppc64: -device pc87312: Device 'parallel0' is in use
> Aborted (core dumped)
> 
> It uses parallel_hds in its realize function, so I can not be
> instantiated by the user again.
> 

Applied to -trivial, thanks!

/mjt
diff mbox series

Patch

diff --git a/hw/isa/pc87312.c b/hw/isa/pc87312.c
index 5ce9f0a..48b29e3 100644
--- a/hw/isa/pc87312.c
+++ b/hw/isa/pc87312.c
@@ -386,6 +386,8 @@  static void pc87312_class_init(ObjectClass *klass, void *data)
     dc->reset = pc87312_reset;
     dc->vmsd = &vmstate_pc87312;
     dc->props = pc87312_properties;
+    /* Reason: Uses parallel_hds[0] in realize(), so it can't be used twice */
+    dc->user_creatable = false;
 }
 
 static const TypeInfo pc87312_type_info = {