qemu-devel
[Top][All Lists]
Advanced

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

[PATCH v1 6/7] spapr.c: introduce spapr_core_unplug_possible()


From: Daniel Henrique Barboza
Subject: [PATCH v1 6/7] spapr.c: introduce spapr_core_unplug_possible()
Date: Thu, 14 Jan 2021 15:06:27 -0300

Next patch is going to add more conditions to allow a CPU core
hotunplug. Let's put it into a separated function to avoid crowding
the body of spapr_core_unplug_request().

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
---
 hw/ppc/spapr.c | 27 ++++++++++++++++++++-------
 1 file changed, 20 insertions(+), 7 deletions(-)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 2c403b574e..a2f01c21aa 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3706,22 +3706,35 @@ static void spapr_core_unplug(HotplugHandler 
*hotplug_dev, DeviceState *dev)
     qdev_unrealize(dev);
 }
 
-static
-void spapr_core_unplug_request(HotplugHandler *hotplug_dev, DeviceState *dev,
-                               Error **errp)
+static int spapr_core_unplug_possible(HotplugHandler *hotplug_dev, CPUCore *cc,
+                                      Error **errp)
 {
-    SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev));
     int index;
-    SpaprDrc *drc;
-    CPUCore *cc = CPU_CORE(dev);
 
     if (!spapr_find_cpu_slot(MACHINE(hotplug_dev), cc->core_id, &index)) {
         error_setg(errp, "Unable to find CPU core with core-id: %d",
                    cc->core_id);
-        return;
+        return -1;
     }
+
     if (index == 0) {
         error_setg(errp, "Boot CPU core may not be unplugged");
+        return -1;
+    }
+
+    return 0;
+}
+
+static
+void spapr_core_unplug_request(HotplugHandler *hotplug_dev, DeviceState *dev,
+                               Error **errp)
+{
+    ERRP_GUARD();
+    SpaprMachineState *spapr = SPAPR_MACHINE(OBJECT(hotplug_dev));
+    SpaprDrc *drc;
+    CPUCore *cc = CPU_CORE(dev);
+
+    if (spapr_core_unplug_possible(hotplug_dev, cc, errp) < 0) {
         return;
     }
 
-- 
2.26.2




reply via email to

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