Message ID | 1466022773-8965-8-git-send-email-ehabkost@redhat.com |
---|---|
State | New |
Headers | show |
On 06/15/2016 11:32 PM, Eduardo Habkost wrote: > Use the new GlobalProperty.errp field to handle compat_props > errors. > > Example output before this change: > (with an intentionally broken entry added to PC_COMPAT_1_3 just > for testing) > > $ qemu-system-x86_64 -machine pc-1.3 > qemu-system-x86_64: hw/core/qdev-properties.c:1091: qdev_prop_set_globals_for_type: Assertion `prop->user_provided' failed. > Aborted (core dumped) > > After: > > $ qemu-system-x86_64 -machine pc-1.3 > Unexpected error in x86_cpuid_set_vendor() at /home/ehabkost/rh/proj/virt/qemu/target-i386/cpu.c:1688: > qemu-system-x86_64: can't apply global cpu.vendor=x: Property '.vendor' doesn't take value 'x' > Aborted (core dumped) > > Suggested-by: Paolo Bonzini <pbonzini@redhat.com> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> > --- > hw/core/machine.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/hw/core/machine.c b/hw/core/machine.c > index 754a054..d6f6be4 100644 > --- a/hw/core/machine.c > +++ b/hw/core/machine.c > @@ -592,6 +592,8 @@ void machine_register_compat_props(MachineState *machine) > > for (i = 0; i < mc->compat_props->len; i++) { > p = g_array_index(mc->compat_props, GlobalProperty *, i); > + /* Machine compat_props must never cause errors: */ > + p->errp = &error_abort; > qdev_prop_register_global(p); > } > } > Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Thanks, Marcel
diff --git a/hw/core/machine.c b/hw/core/machine.c index 754a054..d6f6be4 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -592,6 +592,8 @@ void machine_register_compat_props(MachineState *machine) for (i = 0; i < mc->compat_props->len; i++) { p = g_array_index(mc->compat_props, GlobalProperty *, i); + /* Machine compat_props must never cause errors: */ + p->errp = &error_abort; qdev_prop_register_global(p); } }
Use the new GlobalProperty.errp field to handle compat_props errors. Example output before this change: (with an intentionally broken entry added to PC_COMPAT_1_3 just for testing) $ qemu-system-x86_64 -machine pc-1.3 qemu-system-x86_64: hw/core/qdev-properties.c:1091: qdev_prop_set_globals_for_type: Assertion `prop->user_provided' failed. Aborted (core dumped) After: $ qemu-system-x86_64 -machine pc-1.3 Unexpected error in x86_cpuid_set_vendor() at /home/ehabkost/rh/proj/virt/qemu/target-i386/cpu.c:1688: qemu-system-x86_64: can't apply global cpu.vendor=x: Property '.vendor' doesn't take value 'x' Aborted (core dumped) Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> --- hw/core/machine.c | 2 ++ 1 file changed, 2 insertions(+)