From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53975) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XToJh-0006g0-72 for qemu-devel@nongnu.org; Tue, 16 Sep 2014 04:40:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XToJV-0006iq-LX for qemu-devel@nongnu.org; Tue, 16 Sep 2014 04:40:53 -0400 Received: from [59.151.112.132] (port=40982 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XToJV-0006hf-8I for qemu-devel@nongnu.org; Tue, 16 Sep 2014 04:40:41 -0400 Message-ID: <5417F7DB.8080604@cn.fujitsu.com> Date: Tue, 16 Sep 2014 16:42:03 +0800 From: Tang Chen MIME-Version: 1.0 References: <1409126919-22233-1-git-send-email-tangchen@cn.fujitsu.com> <1409126919-22233-5-git-send-email-tangchen@cn.fujitsu.com> <20140904152227.28adee98@nial.usersys.redhat.com> In-Reply-To: <20140904152227.28adee98@nial.usersys.redhat.com> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RESEND PATCH v3 4/8] qdev: Add memory hot unplug support for bus-less devices. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Igor Mammedov Cc: zhugh.fnst@cn.fujitsu.com, mst@redhat.com, hutao@cn.fujitsu.com, qemu-devel@nongnu.org, isimatu.yasuaki@jp.fujitsu.com, pbonzini@redhat.com Hi Igor, On 09/04/2014 09:22 PM, Igor Mammedov wrote: > On Wed, 27 Aug 2014 16:08:35 +0800 > Tang Chen wrote: > >> From: Hu Tao >> >> Implement bus-less device hot-remove in qdev_unplug(). It will call PCMachine >> callback introduced in previous patch. >> > subject/commit message doesn't need to mention memory hotplug/PCMachine, > it's generic handling that applies to other devices even though > pc-dimm is the only bus-less device handled here. Followed. > >> Signed-off-by: Hu Tao >> Signed-off-by: Tang Chen >> --- >> hw/core/qdev.c | 8 ++++++++ >> 1 file changed, 8 insertions(+) >> >> diff --git a/hw/core/qdev.c b/hw/core/qdev.c >> index da1ba48..e365a74 100644 >> --- a/hw/core/qdev.c >> +++ b/hw/core/qdev.c >> @@ -228,6 +228,14 @@ void qdev_unplug(DeviceState *dev, Error **errp) >> >> if (dev->parent_bus && dev->parent_bus->hotplug_handler) { >> hotplug_handler_unplug(dev->parent_bus->hotplug_handler, dev, errp); >> + } else if (*errp == NULL) { > what's the reason for ^^^ condition here? It should be "else if (object_dynamic_cast(qdev_get_machine(), TYPE_MACHINE)) " Just like we do in device_set_realized(). Thanks. >> + HotplugHandler *hotplug_ctrl; >> + MachineState *machine = MACHINE(qdev_get_machine()); >> + MachineClass *mc = MACHINE_GET_CLASS(machine); >> + >> + hotplug_ctrl = mc->get_hotplug_handler(machine, dev); >> + if (hotplug_ctrl) >> + hotplug_handler_unplug(hotplug_ctrl, dev, errp); >> } else { >> assert(dc->unplug != NULL); >> if (dc->unplug(dev) < 0) { /* legacy handler */ > > . >