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> (cherry picked from commit 7b0dc0a49e5ea43bd4b4d85d3630db2efcbb493b)
This commit is contained in:
parent
926106768d
commit
bb9e0177f0
46
intc-kvm_gicv3-Factor-out-kvm_arm_gicv3_cpu_realize.patch
Normal file
46
intc-kvm_gicv3-Factor-out-kvm_arm_gicv3_cpu_realize.patch
Normal file
@ -0,0 +1,46 @@
|
||||
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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user