diff mbox series

[PULL,04/11] target/loongarch: Add post init function for kvm mode

Message ID 20250225120041.1652869-5-maobibo@loongson.cn (mailing list archive)
State New
Headers show
Series [PULL,01/11] target/loongarch: fix vcpu reset command word issue | expand

Commit Message

bibo mao Feb. 25, 2025, noon UTC
Some features such as LBT and PMU are implemented in kvm mode,
With paravirt features in future, post init function is added
for kvm mode, so that property for these features will be created
in kvm post init function.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Reviewed-by: Bibo Mao <maobibo@loongson.cn>
---
 target/loongarch/cpu.c     | 2 +-
 target/loongarch/cpu.h     | 8 ++++++++
 target/loongarch/kvm/kvm.c | 4 ++++
 3 files changed, 13 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index f203fcc7d7..012fcfbfda 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -765,7 +765,7 @@  void loongarch_cpu_post_init(Object *obj)
                                  loongarch_set_pmu);
         object_property_set_description(obj, "pmu",
                                    "Set off to performance monitor unit.");
-
+        kvm_loongarch_cpu_post_init(cpu);
     } else {
         cpu->lbt = ON_OFF_AUTO_OFF;
         cpu->pmu = ON_OFF_AUTO_OFF;
diff --git a/target/loongarch/cpu.h b/target/loongarch/cpu.h
index f2a23b7a43..74dffcb552 100644
--- a/target/loongarch/cpu.h
+++ b/target/loongarch/cpu.h
@@ -491,4 +491,12 @@  static inline void cpu_get_tb_cpu_state(CPULoongArchState *env, vaddr *pc,
 
 void loongarch_cpu_post_init(Object *obj);
 
+#ifdef CONFIG_KVM
+void kvm_loongarch_cpu_post_init(LoongArchCPU *cpu);
+#else
+static inline void kvm_loongarch_cpu_post_init(LoongArchCPU *cpu)
+{
+}
+#endif
+
 #endif /* LOONGARCH_CPU_H */
diff --git a/target/loongarch/kvm/kvm.c b/target/loongarch/kvm/kvm.c
index 27df02fa3a..2d2fb1e261 100644
--- a/target/loongarch/kvm/kvm.c
+++ b/target/loongarch/kvm/kvm.c
@@ -1016,6 +1016,10 @@  int kvm_arch_init_vcpu(CPUState *cs)
     return ret;
 }
 
+void kvm_loongarch_cpu_post_init(LoongArchCPU *cpu)
+{
+}
+
 int kvm_arch_destroy_vcpu(CPUState *cs)
 {
     return 0;