diff options
author | David Hildenbrand <david@redhat.com> | 2019-02-28 13:28:49 +0100 |
---|---|---|
committer | Eduardo Habkost <ehabkost@redhat.com> | 2019-03-06 11:51:08 -0300 |
commit | 14405c274e86e993e90198a49eecab3ca0ded8db (patch) | |
tree | e00ebb90e75491783bf4f815667cb53d0a673271 | |
parent | 17cc0128da3d4a211731a79853ea81c7159b26af (diff) | |
download | qemu-14405c274e86e993e90198a49eecab3ca0ded8db.zip qemu-14405c274e86e993e90198a49eecab3ca0ded8db.tar.gz qemu-14405c274e86e993e90198a49eecab3ca0ded8db.tar.bz2 |
qdev: Provide qdev_get_bus_hotplug_handler()
Let's use a wrapper instead of looking it up manually. This function can
than be reused when we explicitly want to have the bus hotplug handler
(e.g. when the bus hotplug handler was overwritten by the machine
hotplug handler).
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20190228122849.4296-4-david@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
-rw-r--r-- | hw/core/qdev.c | 10 | ||||
-rw-r--r-- | include/hw/qdev-core.h | 1 |
2 files changed, 10 insertions, 1 deletions
diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 71c7fac..512ce7c 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -236,12 +236,20 @@ HotplugHandler *qdev_get_machine_hotplug_handler(DeviceState *dev) return NULL; } +HotplugHandler *qdev_get_bus_hotplug_handler(DeviceState *dev) +{ + if (dev->parent_bus) { + return dev->parent_bus->hotplug_handler; + } + return NULL; +} + HotplugHandler *qdev_get_hotplug_handler(DeviceState *dev) { HotplugHandler *hotplug_ctrl = qdev_get_machine_hotplug_handler(dev); if (hotplug_ctrl == NULL && dev->parent_bus) { - hotplug_ctrl = dev->parent_bus->hotplug_handler; + hotplug_ctrl = qdev_get_bus_hotplug_handler(dev); } return hotplug_ctrl; } diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index ea4c1f6..17f09aa 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -281,6 +281,7 @@ DeviceState *qdev_try_create(BusState *bus, const char *name); void qdev_init_nofail(DeviceState *dev); void qdev_set_legacy_instance_id(DeviceState *dev, int alias_id, int required_for_version); +HotplugHandler *qdev_get_bus_hotplug_handler(DeviceState *dev); HotplugHandler *qdev_get_machine_hotplug_handler(DeviceState *dev); /** * qdev_get_hotplug_handler: Get handler responsible for device wiring |