diff options
| author | Stefan Hajnoczi <stefanha@redhat.com> | 2017-05-17 16:34:32 +0100 |
|---|---|---|
| committer | Stefan Hajnoczi <stefanha@redhat.com> | 2017-05-17 16:34:35 +0100 |
| commit | 897eee242bc081d72ffbf84664c907dcba620ee3 (patch) | |
| tree | bd0f8efe3507c201b84378d964c4ad34e227f155 /hw/core | |
| parent | 599c9cb641cc484876d5bb92189d09ba27bbfdfd (diff) | |
| parent | 17e8f541263fd771aef58e9818a2060b81904c3f (diff) | |
| download | focaccia-qemu-897eee242bc081d72ffbf84664c907dcba620ee3.tar.gz focaccia-qemu-897eee242bc081d72ffbf84664c907dcba620ee3.zip | |
Merge remote-tracking branch 'ehabkost/tags/x86-and-machine-pull-request' into staging
x86 and machine queue, 2017-05-17 # gpg: Signature made Wed 17 May 2017 02:37:54 PM BST # gpg: using RSA key 0x2807936F984DC5A6 # gpg: Good signature from "Eduardo Habkost <ehabkost@redhat.com>" # Primary key fingerprint: 5A32 2FD5 ABC4 D3DB ACCF D1AA 2807 936F 984D C5A6 * ehabkost/tags/x86-and-machine-pull-request: (22 commits) tests: Add [+-]feature and feature=on|off test cases s390-pcibus: No need to set user_creatable=false explicitly xen-sysdev: Remove user_creatable flag virtio-mmio: Remove user_creatable flag sysbus-ohci: Remove user_creatable flag hpet: Remove user_creatable flag generic-sdhci: Remove user_creatable flag esp: Remove user_creatable flag fw_cfg: Remove user_creatable flag unimplemented-device: Remove user_creatable flag isabus-bridge: Remove user_creatable flag allwinner-ahci: Remove user_creatable flag sysbus-ahci: Remove user_creatable flag kvmvapic: Remove user_creatable flag ioapic: Remove user_creatable flag kvmclock: Remove user_creatable flag pflash_cfi01: Remove user_creatable flag fdc: Remove user_creatable flag from sysbus-fdc & SUNW,fdtwo iommu: Remove FIXME comment about user_creatable=true xen-backend: Remove FIXME comment about user_creatable flag ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'hw/core')
| -rw-r--r-- | hw/core/or-irq.c | 2 | ||||
| -rw-r--r-- | hw/core/qdev.c | 1 | ||||
| -rw-r--r-- | hw/core/register.c | 2 | ||||
| -rw-r--r-- | hw/core/sysbus.c | 11 |
4 files changed, 14 insertions, 2 deletions
diff --git a/hw/core/or-irq.c b/hw/core/or-irq.c index 1485d5b285..f9d76c4641 100644 --- a/hw/core/or-irq.c +++ b/hw/core/or-irq.c @@ -91,7 +91,7 @@ static void or_irq_class_init(ObjectClass *klass, void *data) dc->vmsd = &vmstate_or_irq; /* Reason: Needs to be wired up to work, e.g. see stm32f205_soc.c */ - dc->cannot_instantiate_with_device_add_yet = true; + dc->user_creatable = false; } static const TypeInfo or_irq_type_info = { diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 02b632f6b3..1863db9d0a 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -1118,6 +1118,7 @@ static void device_class_init(ObjectClass *class, void *data) * should override it in their class_init() */ dc->hotpluggable = true; + dc->user_creatable = true; } void device_reset(DeviceState *dev) diff --git a/hw/core/register.c b/hw/core/register.c index dc335a79a9..da38ef3a54 100644 --- a/hw/core/register.c +++ b/hw/core/register.c @@ -288,7 +288,7 @@ static void register_class_init(ObjectClass *oc, void *data) DeviceClass *dc = DEVICE_CLASS(oc); /* Reason: needs to be wired up to work */ - dc->cannot_instantiate_with_device_add_yet = true; + dc->user_creatable = false; } static const TypeInfo register_info = { diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c index c0f560b289..5d0887f499 100644 --- a/hw/core/sysbus.c +++ b/hw/core/sysbus.c @@ -326,6 +326,17 @@ static void sysbus_device_class_init(ObjectClass *klass, void *data) DeviceClass *k = DEVICE_CLASS(klass); k->init = sysbus_device_init; k->bus_type = TYPE_SYSTEM_BUS; + /* + * device_add plugs devices into a suitable bus. For "real" buses, + * that actually connects the device. For sysbus, the connections + * need to be made separately, and device_add can't do that. The + * device would be left unconnected, and will probably not work + * + * However, a few machines can handle device_add/-device with + * a few specific sysbus devices. In those cases, the device + * subclass needs to override it and set user_creatable=true. + */ + k->user_creatable = false; } static const TypeInfo sysbus_device_type_info = { |