diff --git a/hw/pc_piix.c b/hw/pc_piix.c index 6a75718..be809db 100644 --- a/hw/pc_piix.c +++ b/hw/pc_piix.c @@ -378,7 +378,7 @@ static QEMUMachine pc_machine_v1_1 = { .property = "vapic",\ .value = "off",\ },{\ - .driver = "USB",\ + .driver = TYPE_USB_DEVICE,\ .property = "full-path",\ .value = "no",\ } @@ -451,7 +451,7 @@ static QEMUMachine pc_machine_v0_14 = { #define PC_COMPAT_0_13 \ PC_COMPAT_0_14,\ {\ - .driver = "PCI",\ + .driver = TYPE_PCI_DEVICE,\ .property = "command_serr_enable",\ .value = "off",\ },{\ diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c index 0c6dade..ddd7b25 100644 --- a/hw/qdev-properties.c +++ b/hw/qdev-properties.c @@ -1158,10 +1158,14 @@ void qdev_prop_set_globals(DeviceState *dev) GlobalProperty *prop; QTAILQ_FOREACH(prop, &global_props, next) { - if (strcmp(object_get_typename(OBJECT(dev)), prop->driver) != 0) { + Object *obj; + + obj = object_dynamic_cast(OBJECT(dev), prop->driver); + if (obj == NULL) { continue; } - if (qdev_prop_parse(dev, prop->property, prop->value) != 0) { + + if (qdev_prop_parse(DEVICE(obj), prop->property, prop->value) != 0) { exit(1); } }