[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 2/7] i386: add cpu device_del support
From: |
Gu Zheng |
Subject: |
[Qemu-devel] [RFC PATCH 2/7] i386: add cpu device_del support |
Date: |
Fri, 11 Jul 2014 17:59:50 +0800 |
In order to add cpu(i386) device_del support, introduce the cpu hot
unplug hanlde(x86_cpu_unplug) which will trigger the unrealize routine,
and just register it to the cpu class unplug handle.
Signed-off-by: Chen Fan <address@hidden>
Signed-off-by: Gu Zheng <address@hidden>
---
target-i386/cpu.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index 56043fa..06e969b 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -2995,6 +2995,27 @@ static Property x86_cpu_properties[] = {
DEFINE_PROP_END_OF_LIST()
};
+static int x86_cpu_unplug(DeviceState *dev)
+{
+ CPUState *cpu = CPU(dev);
+ X86CPUClass *xcc;
+ Error *err = NULL;
+
+ if (cpu == first_cpu) {
+ error_report("Can not remove the first cpu!\n");
+ return -1;
+ }
+
+ xcc = X86_CPU_GET_CLASS(DEVICE(cpu));
+ xcc->parent_unrealize(DEVICE(cpu), &err);
+ if (err != NULL) {
+ error_report("%s", error_get_pretty(err));
+ error_free(err);
+ return -1;
+ }
+ return 0;
+}
+
static void x86_cpu_common_class_init(ObjectClass *oc, void *data)
{
X86CPUClass *xcc = X86_CPU_CLASS(oc);
@@ -3007,6 +3028,7 @@ static void x86_cpu_common_class_init(ObjectClass *oc,
void *data)
dc->unrealize = x86_cpu_unrealizefn;
dc->bus_type = TYPE_ICC_BUS;
dc->props = x86_cpu_properties;
+ dc->unplug = x86_cpu_unplug;
xcc->parent_reset = cc->reset;
cc->reset = x86_cpu_reset;
--
1.7.7
- [Qemu-devel] [RFC PATCH 0/7] i386: add cpu hot remove support, Gu Zheng, 2014/07/11
- [Qemu-devel] [RFC PATCH 6/7] cpu hotplug: implement function cpu_status_write() for vcpu ejection, Gu Zheng, 2014/07/11
- [Qemu-devel] [RFC PATCH 1/7] x86: add x86_cpu_unrealizefn() for cpu apic remove, Gu Zheng, 2014/07/11
- [Qemu-devel] [RFC PATCH 5/7] i386: implement pc interface cpu_common_unrealizefn() in qom/cpu.c, Gu Zheng, 2014/07/11
- [Qemu-devel] [RFC PATCH 2/7] i386: add cpu device_del support,
Gu Zheng <=
- [Qemu-devel] [RFC PATCH 3/7] qom cpu: rename variable 'cpu_added_notifier' to 'cpu_hotplug_notifier', Gu Zheng, 2014/07/11
- [Qemu-devel] [RFC PATCH 4/7] qom cpu: add UNPLUG cpu notify support, Gu Zheng, 2014/07/11
- [Qemu-devel] [RFC PATCH 7/7] cpus: reclaim allocated vCPU objects, Gu Zheng, 2014/07/11
- Re: [Qemu-devel] [RFC PATCH 0/7] i386: add cpu hot remove support, Gu Zheng, 2014/07/14
- Re: [Qemu-devel] [RFC PATCH 0/7] i386: add cpu hot remove support, Gu Zheng, 2014/07/21