[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] Revert "machine: Convert abstract typename
From: |
Greg Kurz |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] Revert "machine: Convert abstract typename on compat_props to subclass names" |
Date: |
Tue, 11 Jul 2017 15:16:53 +0200 |
On Mon, 10 Jul 2017 21:43:03 -0300
Eduardo Habkost <address@hidden> wrote:
> This reverts commit 0bcba41fe379e4c6834adcf1456d9099db31a5b2.
>
> The bug addressed by that commit is now fixed in a better way by the
> commit "qdev: fix the order compat and global properties are applied".
>
> Signed-off-by: Eduardo Habkost <address@hidden>
> ---
Reviewed-by: Greg Kurz <address@hidden>
> hw/core/machine.c | 26 +++-----------------------
> 1 file changed, 3 insertions(+), 23 deletions(-)
>
> diff --git a/hw/core/machine.c b/hw/core/machine.c
> index ecb5552..1d10b01 100644
> --- a/hw/core/machine.c
> +++ b/hw/core/machine.c
> @@ -770,18 +770,11 @@ static void machine_class_finalize(ObjectClass *klass,
> void *data)
> g_free(mc->name);
> }
>
> -static void machine_register_compat_for_subclass(ObjectClass *oc, void
> *opaque)
> -{
> - GlobalProperty *p = opaque;
> - register_compat_prop(object_class_get_name(oc), p->property, p->value);
> -}
> -
> void machine_register_compat_props(MachineState *machine)
> {
> MachineClass *mc = MACHINE_GET_CLASS(machine);
> int i;
> GlobalProperty *p;
> - ObjectClass *oc;
>
> if (!mc->compat_props) {
> return;
> @@ -789,22 +782,9 @@ 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);
> - oc = object_class_by_name(p->driver);
> - if (oc && object_class_is_abstract(oc)) {
> - /* temporary hack to make sure we do not override
> - * globals set explicitly on -global: if an abstract class
> - * is on compat_props, register globals for all its
> - * non-abstract subtypes instead.
> - *
> - * This doesn't solve the problem for cases where
> - * a non-abstract typename mentioned on compat_props
> - * has subclasses, like spapr-pci-host-bridge.
> - */
> - object_class_foreach(machine_register_compat_for_subclass,
> - p->driver, false, p);
> - } else {
> - register_compat_prop(p->driver, p->property, p->value);
> - }
> + /* Machine compat_props must never cause errors: */
> + p->errp = &error_abort;
> + qdev_prop_register_global(p);
> }
> }
>
pgpxYEvOuzPfX.pgp
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH 1/3] qdev: fix the order compat and global properties are applied, (continued)
[Qemu-devel] [PATCH 2/3] test-qdev-global-props: Test global property ordering, Eduardo Habkost, 2017/07/10
[Qemu-devel] [PATCH 3/3] Revert "machine: Convert abstract typename on compat_props to subclass names", Eduardo Habkost, 2017/07/10