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 <maob...@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 --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c index e91f4a5239..40f753167f 100644 --- a/target/loongarch/cpu.c +++ b/target/loongarch/cpu.c @@ -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; diff --git a/target/loongarch/cpu.h b/target/loongarch/cpu.h index f2a23b7a43..dd759a562f 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_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 */ diff --git a/target/loongarch/kvm/kvm.c b/target/loongarch/kvm/kvm.c index a3f55155b0..516aba180f 100644 --- a/target/loongarch/kvm/kvm.c +++ b/target/loongarch/kvm/kvm.c @@ -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; -- 2.39.3