Message ID | 1503560493-5961-1-git-send-email-thuth@redhat.com |
---|---|
State | New |
Headers | show |
On Thu, Aug 24, 2017 at 09:41:33AM +0200, Thomas Huth wrote: > Trying to add a spapr-nvram device currently aborts QEMU like this: > > $ ppc64-softmmu/qemu-system-ppc64 -device spapr-nvram > qemu-system-ppc64: hw/ppc/spapr_rtas.c:407: spapr_rtas_register: > Assertion `!rtas_table[token].name' failed. > Aborted (core dumped) > > This NVRAM device registers RTAS calls during its realize function > and thus can only be used once - and that's internally from spapr.c. > So let's mark the device with user_creatable = false to avoid that > the users can crash their QEMU this way. > > Signed-off-by: Thomas Huth <thuth@redhat.com> Applied to ppc-for-2.11, thanks. > --- > hw/nvram/spapr_nvram.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/nvram/spapr_nvram.c b/hw/nvram/spapr_nvram.c > index bc355a4..4a0aec8 100644 > --- a/hw/nvram/spapr_nvram.c > +++ b/hw/nvram/spapr_nvram.c > @@ -264,6 +264,8 @@ static void spapr_nvram_class_init(ObjectClass *klass, void *data) > set_bit(DEVICE_CATEGORY_MISC, dc->categories); > dc->props = spapr_nvram_properties; > dc->vmsd = &vmstate_spapr_nvram; > + /* Reason: Internal device only, uses spapr_rtas_register() in realize() */ > + dc->user_creatable = false; > } > > static const TypeInfo spapr_nvram_type_info = {
diff --git a/hw/nvram/spapr_nvram.c b/hw/nvram/spapr_nvram.c index bc355a4..4a0aec8 100644 --- a/hw/nvram/spapr_nvram.c +++ b/hw/nvram/spapr_nvram.c @@ -264,6 +264,8 @@ static void spapr_nvram_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_MISC, dc->categories); dc->props = spapr_nvram_properties; dc->vmsd = &vmstate_spapr_nvram; + /* Reason: Internal device only, uses spapr_rtas_register() in realize() */ + dc->user_creatable = false; } static const TypeInfo spapr_nvram_type_info = {
Trying to add a spapr-nvram device currently aborts QEMU like this: $ ppc64-softmmu/qemu-system-ppc64 -device spapr-nvram qemu-system-ppc64: hw/ppc/spapr_rtas.c:407: spapr_rtas_register: Assertion `!rtas_table[token].name' failed. Aborted (core dumped) This NVRAM device registers RTAS calls during its realize function and thus can only be used once - and that's internally from spapr.c. So let's mark the device with user_creatable = false to avoid that the users can crash their QEMU this way. Signed-off-by: Thomas Huth <thuth@redhat.com> --- hw/nvram/spapr_nvram.c | 2 ++ 1 file changed, 2 insertions(+)