summaryrefslogtreecommitdiff
path: root/arch/loongarch/kvm/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/loongarch/kvm/main.c')
-rw-r--r--arch/loongarch/kvm/main.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/loongarch/kvm/main.c b/arch/loongarch/kvm/main.c
index 80ea63d465b8..ac38d0f19dd3 100644
--- a/arch/loongarch/kvm/main.c
+++ b/arch/loongarch/kvm/main.c
@@ -192,6 +192,14 @@ static void kvm_init_gcsr_flag(void)
set_gcsr_sw_flag(LOONGARCH_CSR_PERFCNTR2);
set_gcsr_sw_flag(LOONGARCH_CSR_PERFCTRL3);
set_gcsr_sw_flag(LOONGARCH_CSR_PERFCNTR3);
+
+ if (cpu_has_msgint) {
+ set_gcsr_hw_flag(LOONGARCH_CSR_IPR);
+ set_gcsr_hw_flag(LOONGARCH_CSR_ISR0);
+ set_gcsr_hw_flag(LOONGARCH_CSR_ISR1);
+ set_gcsr_hw_flag(LOONGARCH_CSR_ISR2);
+ set_gcsr_hw_flag(LOONGARCH_CSR_ISR3);
+ }
}
static void kvm_update_vpid(struct kvm_vcpu *vcpu, int cpu)
@@ -394,7 +402,7 @@ static int kvm_loongarch_env_init(void)
}
kvm_init_gcsr_flag();
- kvm_register_perf_callbacks(NULL);
+ kvm_register_perf_callbacks();
/* Register LoongArch IPI interrupt controller interface. */
ret = kvm_loongarch_register_ipi_device();