The CPU object of hotplugged CPU will be defer-created (during hotplug session), so we must factor out realization code to let it can be applied to individual CPU. Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com> Signed-off-by: Salil Mehta <salil.mehta@huawei.com> (cherry picked from commit 7b0dc0a49e5ea43bd4b4d85d3630db2efcbb493b)
47 lines
1.5 KiB
Diff
47 lines
1.5 KiB
Diff
From dd03bc60712bd41a9606742ea4b769aa8e360655 Mon Sep 17 00:00:00 2001
|
|
From: Keqian Zhu <zhukeqian1@huawei.com>
|
|
Date: Fri, 10 Apr 2020 12:49:12 +0800
|
|
Subject: [PATCH] intc/kvm_gicv3: Factor out kvm_arm_gicv3_cpu_realize
|
|
|
|
The CPU object of hotplugged CPU will be defer-created (during
|
|
hotplug session), so we must factor out realization code to let
|
|
it can be applied to individual CPU.
|
|
|
|
Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
|
|
Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
|
|
---
|
|
hw/intc/arm_gicv3_kvm.c | 10 +++++++---
|
|
1 file changed, 7 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/hw/intc/arm_gicv3_kvm.c b/hw/intc/arm_gicv3_kvm.c
|
|
index 5ec5ff9ef6..596b31998b 100644
|
|
--- a/hw/intc/arm_gicv3_kvm.c
|
|
+++ b/hw/intc/arm_gicv3_kvm.c
|
|
@@ -764,6 +764,12 @@ static void vm_change_state_handler(void *opaque, bool running,
|
|
}
|
|
}
|
|
|
|
+static void kvm_arm_gicv3_cpu_realize(GICv3State *s, int ncpu)
|
|
+{
|
|
+ ARMCPU *cpu = ARM_CPU(qemu_get_cpu(ncpu));
|
|
+
|
|
+ define_arm_cp_regs(cpu, gicv3_cpuif_reginfo);
|
|
+}
|
|
|
|
static void kvm_arm_gicv3_realize(DeviceState *dev, Error **errp)
|
|
{
|
|
@@ -790,9 +796,7 @@ static void kvm_arm_gicv3_realize(DeviceState *dev, Error **errp)
|
|
gicv3_init_irqs_and_mmio(s, kvm_arm_gicv3_set_irq, NULL);
|
|
|
|
for (i = 0; i < s->num_cpu; i++) {
|
|
- ARMCPU *cpu = ARM_CPU(qemu_get_cpu(i));
|
|
-
|
|
- define_arm_cp_regs(cpu, gicv3_cpuif_reginfo);
|
|
+ kvm_arm_gicv3_cpu_realize(s, i);
|
|
}
|
|
|
|
/* Try to create the device via the device control API */
|
|
--
|
|
2.27.0
|
|
|