Message ID | 20190123195527.29575-4-david@redhat.com |
---|---|
State | New |
Headers | show |
Series | qdev: Hotplug handler chaining + virtio-pmem | expand |
On Wed, 23 Jan 2019 20:55:21 +0100 David Hildenbrand <david@redhat.com> wrote: > 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> > Reviewed-by: Igor Mammedov <imammedo@redhat.com> maybe drop the 2nd one? > Signed-off-by: David Hildenbrand <david@redhat.com> > --- > hw/core/qdev.c | 10 +++++++++- > include/hw/qdev-core.h | 1 + > 2 files changed, 10 insertions(+), 1 deletion(-) > > diff --git a/hw/core/qdev.c b/hw/core/qdev.c > index 7ad45c0bd6..e2207d77a4 100644 > --- a/hw/core/qdev.c > +++ b/hw/core/qdev.c > @@ -233,12 +233,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 9081fb0030..cb0ec63c2d 100644 > --- a/include/hw/qdev-core.h > +++ b/include/hw/qdev-core.h > @@ -280,6 +280,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
On 28.01.19 15:01, Igor Mammedov wrote: > On Wed, 23 Jan 2019 20:55:21 +0100 > David Hildenbrand <david@redhat.com> wrote: > >> 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> >> Reviewed-by: Igor Mammedov <imammedo@redhat.com> > maybe drop the 2nd one? Whoops, indeed! Thanks!
diff --git a/hw/core/qdev.c b/hw/core/qdev.c index 7ad45c0bd6..e2207d77a4 100644 --- a/hw/core/qdev.c +++ b/hw/core/qdev.c @@ -233,12 +233,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 9081fb0030..cb0ec63c2d 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -280,6 +280,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