@@ -759,7 +759,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;
@@ -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_USER_ONLY
+static inline void kvm_loongarch_cpu_post_init(LoongArchCPU *cpu)
+{
+}
+#else
+void kvm_loongarch_cpu_post_init(LoongArchCPU *cpu);
+#endif
+
#endif /* LOONGARCH_CPU_H */
@@ -1009,6 +1009,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;
Some features such as LBT and PMU are implemented in kvm mode, With para-virt 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> --- target/loongarch/cpu.c | 2 +- target/loongarch/cpu.h | 8 ++++++++ target/loongarch/kvm/kvm.c | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-)