qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RESEND PATCH v3 4/8] qdev: Add memory hot unplug suppo


From: Tang Chen
Subject: Re: [Qemu-devel] [RESEND PATCH v3 4/8] qdev: Add memory hot unplug support for bus-less devices.
Date: Tue, 16 Sep 2014 16:42:03 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0

Hi Igor,

On 09/04/2014 09:22 PM, Igor Mammedov wrote:
On Wed, 27 Aug 2014 16:08:35 +0800
Tang Chen <address@hidden> wrote:

From: Hu Tao <address@hidden>

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 <address@hidden>
Signed-off-by: Tang Chen <address@hidden>
---
  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 */

.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]