]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
LoongArch: KVM: Add interrupt checking for AVEC
authorBibo Mao <maobibo@loongson.cn>
Sat, 8 Mar 2025 05:51:59 +0000 (13:51 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Sat, 8 Mar 2025 05:51:59 +0000 (13:51 +0800)
There is a newly added macro INT_AVEC with CSR ESTAT register, which is
bit 14 used for LoongArch AVEC support. AVEC interrupt status bit 14 is
supported with macro CSR_ESTAT_IS, so here replace the hard-coded value
0x1fff with macro CSR_ESTAT_IS so that the AVEC interrupt status is also
supported by KVM.

Cc: stable@vger.kernel.org
Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kvm/vcpu.c

index 20f941af3e9ea44914565a91671daef2438beeff..9e1a9b4aa4c6a99c3aa06b860e32314a4f3d0307 100644 (file)
@@ -311,7 +311,7 @@ static int kvm_handle_exit(struct kvm_run *run, struct kvm_vcpu *vcpu)
 {
        int ret = RESUME_GUEST;
        unsigned long estat = vcpu->arch.host_estat;
-       u32 intr = estat & 0x1fff; /* Ignore NMI */
+       u32 intr = estat & CSR_ESTAT_IS;
        u32 ecode = (estat & CSR_ESTAT_EXC) >> CSR_ESTAT_EXC_SHIFT;
 
        vcpu->mode = OUTSIDE_GUEST_MODE;