From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:44662) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gkR3s-0000iP-FB for qemu-devel@nongnu.org; Fri, 18 Jan 2019 05:07:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gkR3k-00047F-LN for qemu-devel@nongnu.org; Fri, 18 Jan 2019 05:07:35 -0500 Date: Fri, 18 Jan 2019 11:07:09 +0100 From: Igor Mammedov Message-ID: <20190118110709.07c08ec5@redhat.com> In-Reply-To: <20190116113523.9213-4-david@redhat.com> References: <20190116113523.9213-1-david@redhat.com> <20190116113523.9213-4-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH RFC 03/10] qdev: Provide qdev_get_bus_hotplug_handler() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Hildenbrand Cc: qemu-devel@nongnu.org, Collin Walling , Eduardo Habkost , "Michael S . Tsirkin" , Cornelia Huck , "Dr . David Alan Gilbert" , Markus Armbruster , Halil Pasic , Christian Borntraeger , qemu-s390x@nongnu.org, qemu-ppc@nongnu.org, Paolo Bonzini , David Gibson , Richard Henderson On Wed, 16 Jan 2019 12:35:16 +0100 David Hildenbrand 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). > > Signed-off-by: David Hildenbrand Reviewed-by: Igor Mammedov > --- > 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 0632057fd6..893acc19b9 100644 > --- a/include/hw/qdev-core.h > +++ b/include/hw/qdev-core.h > @@ -277,6 +277,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