From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:34919) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TOY2e-00066P-CX for qemu-devel@nongnu.org; Wed, 17 Oct 2012 14:08:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TOY2d-00024W-6T for qemu-devel@nongnu.org; Wed, 17 Oct 2012 14:08:28 -0400 Received: from mail-ob0-f173.google.com ([209.85.214.173]:57916) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TOY2d-00024M-1z for qemu-devel@nongnu.org; Wed, 17 Oct 2012 14:08:27 -0400 Received: by mail-ob0-f173.google.com with SMTP id wc18so7388843obb.4 for ; Wed, 17 Oct 2012 11:08:26 -0700 (PDT) From: Anthony Liguori In-Reply-To: <1350414523-8117-8-git-send-email-ehabkost@redhat.com> References: <1350414523-8117-1-git-send-email-ehabkost@redhat.com> <1350414523-8117-8-git-send-email-ehabkost@redhat.com> Date: Wed, 17 Oct 2012 13:08:23 -0500 Message-ID: <874nltug2w.fsf@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: Re: [Qemu-devel] [PATCH 07/12] qdev-core: isolate reset register/unregister code List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost , qemu-devel@nongnu.org Cc: blauwirbel@gmail.com, Igor Mammedov , riku.voipio@iki.fi, Andreas =?utf-8?Q?F=C3=A4rber?= , peter.maydell@linaro.org Eduardo Habkost writes: > The reset register/unregister code is specific to qemu-system-*, so > isolate it so it can be moved to qdev-system.c. > > Signed-off-by: Eduardo Habkost > --- > hw/qdev-core.c | 24 ++++++++++++++++++------ > 1 file changed, 18 insertions(+), 6 deletions(-) > > diff --git a/hw/qdev-core.c b/hw/qdev-core.c > index af0af52..a105679 100644 > --- a/hw/qdev-core.c > +++ b/hw/qdev-core.c > @@ -47,6 +47,21 @@ void GCC_WEAK qdev_finalize_vmstate(DeviceState *dev) > { > } > > +static void qbus_register_reset(BusState *bus) > +{ > + if (bus != sysbus_get_default()) { > + /* TODO: once all bus devices are qdevified, > + only reset handler for main_system_bus should be registered here. */ > + qemu_register_reset(qbus_reset_all_fn, bus); > + } > +} > + > +static void qbus_unregister_reset(BusState *bus) > +{ > + assert(bus != sysbus_get_default()); /* main_system_bus is never freed */ > + qemu_unregister_reset(qbus_reset_all_fn, bus); > +} > + Again, I'd suggest stubbing out qemu_[un]register_reset instead of trying to cope with it's users. Regards, Anthony Liguori > const char *qdev_fw_name(DeviceState *dev) > { > DeviceClass *dc = DEVICE_GET_CLASS(dev); > @@ -355,10 +370,8 @@ static void qbus_realize(BusState *bus) > QLIST_INSERT_HEAD(&bus->parent->child_bus, bus, sibling); > bus->parent->num_child_bus++; > object_property_add_child(OBJECT(bus->parent), bus->name, OBJECT(bus), NULL); > - } else if (bus != sysbus_get_default()) { > - /* TODO: once all bus devices are qdevified, > - only reset handler for main_system_bus should be registered here. */ > - qemu_register_reset(qbus_reset_all_fn, bus); > + } else { > + qbus_register_reset(bus); > } > } > > @@ -692,8 +705,7 @@ static void qbus_finalize(Object *obj) > QLIST_REMOVE(bus, sibling); > bus->parent->num_child_bus--; > } else { > - assert(bus != sysbus_get_default()); /* main_system_bus is never freed */ > - qemu_unregister_reset(qbus_reset_all_fn, bus); > + qbus_unregister_reset(bus); > } > g_free((char *)bus->name); > } > -- > 1.7.11.7