From nobody Mon Feb 9 08:31:08 2026 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by smtp.subspace.kernel.org (Postfix) with ESMTP id EFD7D2C3248; Wed, 28 Jan 2026 03:03:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769569424; cv=none; b=TyAh472OcxPWSi1Fv2o8dBdmY6mEyfHMImYNdiEXN3DZIHcLbZKzqZKOZOvtAasVmTYrbNTJ3+Cb05Ba9TPN5cnbaKNL1DRFXBfiSVP65qBHbR5qOSq94lWSTzBgm4qm7KrCU8fFrRfc++vMhIAvlQmNORy25zermplMIanXVTs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769569424; c=relaxed/simple; bh=esmrRAWV32wi8JXlteqNrYuH+IbazgNJ6/6QEtR9FaA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=PXt1xY8/2OLY/lUnOUCthGGTDG1lCSf/Zj+OCNGUD5BtmxEb4WW7vuonzqq9brlOeNEof5XTTO9F2M4EIhgBmQOwapQ0ILeVcaiWO71JaQya1uCKpn3VVFECb1j8AnZ4dNSkRRNL/YMh4HKRJFsVndlJhJERANSXU8ilV0SWnDw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn; spf=pass smtp.mailfrom=loongson.cn; arc=none smtp.client-ip=114.242.206.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.2.5.213]) by gateway (Coremail) with SMTP id _____8DxusKDfHlp+2INAA--.43215S3; Wed, 28 Jan 2026 11:03:31 +0800 (CST) Received: from localhost.localdomain (unknown [10.2.5.213]) by front1 (Coremail) with SMTP id qMiowJDxaeB_fHlpfUg2AA--.40601S3; Wed, 28 Jan 2026 11:03:31 +0800 (CST) From: Bibo Mao To: Huacai Chen , WANG Xuerui , Tianrui Zhao Cc: loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, kvm@vger.kernel.org Subject: [PATCH 1/4] LoongArch: KVM: Move feature detection in function kvm_vm_init_features Date: Wed, 28 Jan 2026 11:03:23 +0800 Message-Id: <20260128030326.3377462-2-maobibo@loongson.cn> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20260128030326.3377462-1-maobibo@loongson.cn> References: <20260128030326.3377462-1-maobibo@loongson.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: qMiowJDxaeB_fHlpfUg2AA--.40601S3 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== Content-Type: text/plain; charset="utf-8" VM feature detection is sparsed in function kvm_vm_init_features() and kvm_vm_feature_has_attr(). Here move all the feature detection in function kvm_vm_init_features(), and there is only feature checking in function kvm_vm_feature_has_attr(). Signed-off-by: Bibo Mao --- arch/loongarch/kvm/vm.c | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/arch/loongarch/kvm/vm.c b/arch/loongarch/kvm/vm.c index 194ccbcdc3b3..ae79c50db9e1 100644 --- a/arch/loongarch/kvm/vm.c +++ b/arch/loongarch/kvm/vm.c @@ -40,6 +40,21 @@ static void kvm_vm_init_features(struct kvm *kvm) kvm->arch.pv_features |=3D BIT(KVM_FEATURE_STEAL_TIME); kvm->arch.kvm_features |=3D BIT(KVM_LOONGARCH_VM_FEAT_PV_STEALTIME); } + + if (cpu_has_lsx) + kvm->arch.kvm_features |=3D BIT(KVM_LOONGARCH_VM_FEAT_LSX); + if (cpu_has_lasx) + kvm->arch.kvm_features |=3D BIT(KVM_LOONGARCH_VM_FEAT_LASX); + if (cpu_has_lbt_x86) + kvm->arch.kvm_features |=3D BIT(KVM_LOONGARCH_VM_FEAT_X86BT); + if (cpu_has_lbt_arm) + kvm->arch.kvm_features |=3D BIT(KVM_LOONGARCH_VM_FEAT_ARMBT); + if (cpu_has_lbt_mips) + kvm->arch.kvm_features |=3D BIT(KVM_LOONGARCH_VM_FEAT_MIPSBT); + if (cpu_has_ptw) + kvm->arch.kvm_features |=3D BIT(KVM_LOONGARCH_VM_FEAT_PTW); + if (cpu_has_msgint) + kvm->arch.kvm_features |=3D BIT(KVM_LOONGARCH_VM_FEAT_MSGINT); } =20 int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) @@ -131,33 +146,12 @@ static int kvm_vm_feature_has_attr(struct kvm *kvm, s= truct kvm_device_attr *attr { switch (attr->attr) { case KVM_LOONGARCH_VM_FEAT_LSX: - if (cpu_has_lsx) - return 0; - return -ENXIO; case KVM_LOONGARCH_VM_FEAT_LASX: - if (cpu_has_lasx) - return 0; - return -ENXIO; case KVM_LOONGARCH_VM_FEAT_X86BT: - if (cpu_has_lbt_x86) - return 0; - return -ENXIO; case KVM_LOONGARCH_VM_FEAT_ARMBT: - if (cpu_has_lbt_arm) - return 0; - return -ENXIO; case KVM_LOONGARCH_VM_FEAT_MIPSBT: - if (cpu_has_lbt_mips) - return 0; - return -ENXIO; case KVM_LOONGARCH_VM_FEAT_PTW: - if (cpu_has_ptw) - return 0; - return -ENXIO; case KVM_LOONGARCH_VM_FEAT_MSGINT: - if (cpu_has_msgint) - return 0; - return -ENXIO; case KVM_LOONGARCH_VM_FEAT_PMU: case KVM_LOONGARCH_VM_FEAT_PV_IPI: case KVM_LOONGARCH_VM_FEAT_PV_STEALTIME: --=20 2.39.3 From nobody Mon Feb 9 08:31:08 2026 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 40BB72C21FC; Wed, 28 Jan 2026 03:03:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769569423; cv=none; b=ZvWoEEmieSTOrWNONxlhjjl4+dN9maoEdKW2aw0QBx+kPeVoUnRGBg5MrBMZ8G17nqujBjOwPjyRYzdiqq038YsfkKvfQpogg9SKtSV+5mfxNzqnf8c83b7k+k8F6YKv5/ud2rNCVEgzvJPKMNa1DgDTg1R91fSXM1r/sKKyAUs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769569423; c=relaxed/simple; bh=gAwny8OZzvfnbjPD3B86e6aAZqp3ru61Y/0DFJxWgm0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=goCvC5qP+8oPiBeKDlHYtDiYCQ/WOpTAnrmXszPVHDK2RdEt9KhdB5o/vds8tBpp2JX6lnlvvfqT1RXQyZEfgLgdhekDUbaqwzFtLSM5wpleyXYU3Wk9mQJXJWgBoJckmLKD3ogM1+xX6GkM+jGbM8GJmf8aUHYshL9ted9DI6k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn; spf=pass smtp.mailfrom=loongson.cn; arc=none smtp.client-ip=114.242.206.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.2.5.213]) by gateway (Coremail) with SMTP id _____8Cx58GEfHlp_mINAA--.31763S3; Wed, 28 Jan 2026 11:03:32 +0800 (CST) Received: from localhost.localdomain (unknown [10.2.5.213]) by front1 (Coremail) with SMTP id qMiowJDxaeB_fHlpfUg2AA--.40601S4; Wed, 28 Jan 2026 11:03:31 +0800 (CST) From: Bibo Mao To: Huacai Chen , WANG Xuerui , Tianrui Zhao Cc: loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, kvm@vger.kernel.org Subject: [PATCH 2/4] LoongArch: KVM: Add msgint registers in function kvm_init_gcsr_flag Date: Wed, 28 Jan 2026 11:03:24 +0800 Message-Id: <20260128030326.3377462-3-maobibo@loongson.cn> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20260128030326.3377462-1-maobibo@loongson.cn> References: <20260128030326.3377462-1-maobibo@loongson.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: qMiowJDxaeB_fHlpfUg2AA--.40601S4 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== Content-Type: text/plain; charset="utf-8" Add flag HW_GCSR with msgint registers in function kvm_init_gcsr_flag(). Signed-off-by: Bibo Mao --- arch/loongarch/include/asm/loongarch.h | 2 +- arch/loongarch/kvm/main.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/arch/loongarch/include/asm/loongarch.h b/arch/loongarch/includ= e/asm/loongarch.h index 553c4dc7a156..9ca18af11d25 100644 --- a/arch/loongarch/include/asm/loongarch.h +++ b/arch/loongarch/include/asm/loongarch.h @@ -688,8 +688,8 @@ #define LOONGARCH_CSR_ISR1 0xa1 #define LOONGARCH_CSR_ISR2 0xa2 #define LOONGARCH_CSR_ISR3 0xa3 - #define LOONGARCH_CSR_IRR 0xa4 +#define LOONGARCH_CSR_IPR 0xa5 =20 #define LOONGARCH_CSR_PRID 0xc0 =20 diff --git a/arch/loongarch/kvm/main.c b/arch/loongarch/kvm/main.c index 80ea63d465b8..3ecd7de110d7 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_ISR0); + set_gcsr_hw_flag(LOONGARCH_CSR_ISR1); + set_gcsr_hw_flag(LOONGARCH_CSR_ISR2); + set_gcsr_hw_flag(LOONGARCH_CSR_ISR3); + set_gcsr_hw_flag(LOONGARCH_CSR_IPR); + } } =20 static void kvm_update_vpid(struct kvm_vcpu *vcpu, int cpu) --=20 2.39.3 From nobody Mon Feb 9 08:31:08 2026 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F0ADE2C3757; Wed, 28 Jan 2026 03:03:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769569424; cv=none; b=eoIU+jGTCYJHLiO93kUuCNxlGpvGCbeq56HNdNW7pjbhppW6ayR/7KWlqyPc2Lo7sm0+59hpOGKQcJtX87PafiiQophhtErgA/jYQUzbZYvffUofJTk4e3zbs6CVHflBoC78sKLLzwCgGTGPtUc5DBeKYCXQHDqN5CqxtqFRKus= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769569424; c=relaxed/simple; bh=3TEgnr20UfbqEXkJKlS4PbC4d+oiy/L7NR0S+I0EWEI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oUGn77p5bKiHj7WgA6evlGpX3j8cXt2F0YRkhyczBi+qEe0yBbbSLKy4R3GFlASQ7z4PDv84k7AH3G7wx3byUD5ApgIqDPieMOHENfcXU07hvVtMfPSl5wo+1b07G95PBBeoSbG3zBLg1qSM/bP1sC+eGwGO6Yyv5y2CEy3VYLk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn; spf=pass smtp.mailfrom=loongson.cn; arc=none smtp.client-ip=114.242.206.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.2.5.213]) by gateway (Coremail) with SMTP id _____8Axz8OEfHlpAWMNAA--.44141S3; Wed, 28 Jan 2026 11:03:32 +0800 (CST) Received: from localhost.localdomain (unknown [10.2.5.213]) by front1 (Coremail) with SMTP id qMiowJDxaeB_fHlpfUg2AA--.40601S5; Wed, 28 Jan 2026 11:03:32 +0800 (CST) From: Bibo Mao To: Huacai Chen , WANG Xuerui , Tianrui Zhao Cc: loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, kvm@vger.kernel.org Subject: [PATCH 3/4] LoongArch: KVM: Check VM msgint feature during interrupt handling Date: Wed, 28 Jan 2026 11:03:25 +0800 Message-Id: <20260128030326.3377462-4-maobibo@loongson.cn> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20260128030326.3377462-1-maobibo@loongson.cn> References: <20260128030326.3377462-1-maobibo@loongson.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: qMiowJDxaeB_fHlpfUg2AA--.40601S5 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== Content-Type: text/plain; charset="utf-8" During message interrupt handling and relative CSR registers saving and restore, it is better to check VM msgint feature rather than host msgint feature, because VM may disable this feature even if host supports this. Signed-off-by: Bibo Mao --- arch/loongarch/include/asm/kvm_host.h | 5 +++++ arch/loongarch/kvm/interrupt.c | 4 ++-- arch/loongarch/kvm/vcpu.c | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/loongarch/include/asm/kvm_host.h b/arch/loongarch/include= /asm/kvm_host.h index e4fe5b8e8149..bced2d607849 100644 --- a/arch/loongarch/include/asm/kvm_host.h +++ b/arch/loongarch/include/asm/kvm_host.h @@ -265,6 +265,11 @@ static inline void writel_sw_gcsr(struct loongarch_csr= s *csr, int reg, unsigned csr->csrs[reg] =3D val; } =20 +static inline bool kvm_guest_has_msgint(struct kvm_vcpu_arch *arch) +{ + return arch->cpucfg[1] & CPUCFG1_MSGINT; +} + static inline bool kvm_guest_has_fpu(struct kvm_vcpu_arch *arch) { return arch->cpucfg[2] & CPUCFG2_FP; diff --git a/arch/loongarch/kvm/interrupt.c b/arch/loongarch/kvm/interrupt.c index a6d42d399a59..fb704f4c8ac5 100644 --- a/arch/loongarch/kvm/interrupt.c +++ b/arch/loongarch/kvm/interrupt.c @@ -32,7 +32,7 @@ static int kvm_irq_deliver(struct kvm_vcpu *vcpu, unsigne= d int priority) if (priority < EXCCODE_INT_NUM) irq =3D priority_to_irq[priority]; =20 - if (cpu_has_msgint && (priority =3D=3D INT_AVEC)) { + if (kvm_guest_has_msgint(&vcpu->arch) && (priority =3D=3D INT_AVEC)) { set_gcsr_estat(irq); return 1; } @@ -64,7 +64,7 @@ static int kvm_irq_clear(struct kvm_vcpu *vcpu, unsigned = int priority) if (priority < EXCCODE_INT_NUM) irq =3D priority_to_irq[priority]; =20 - if (cpu_has_msgint && (priority =3D=3D INT_AVEC)) { + if (kvm_guest_has_msgint(&vcpu->arch) && (priority =3D=3D INT_AVEC)) { clear_gcsr_estat(irq); return 1; } diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c index 656b954c1134..6d9953d0b7be 100644 --- a/arch/loongarch/kvm/vcpu.c +++ b/arch/loongarch/kvm/vcpu.c @@ -1661,7 +1661,7 @@ static int _kvm_vcpu_load(struct kvm_vcpu *vcpu, int = cpu) kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_DMWIN2); kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_DMWIN3); kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_LLBCTL); - if (cpu_has_msgint) { + if (kvm_guest_has_msgint(&vcpu->arch)) { kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_ISR0); kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_ISR1); kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_ISR2); @@ -1756,7 +1756,7 @@ static int _kvm_vcpu_put(struct kvm_vcpu *vcpu, int c= pu) kvm_save_hw_gcsr(csr, LOONGARCH_CSR_DMWIN1); kvm_save_hw_gcsr(csr, LOONGARCH_CSR_DMWIN2); kvm_save_hw_gcsr(csr, LOONGARCH_CSR_DMWIN3); - if (cpu_has_msgint) { + if (kvm_guest_has_msgint(&vcpu->arch)) { kvm_save_hw_gcsr(csr, LOONGARCH_CSR_ISR0); kvm_save_hw_gcsr(csr, LOONGARCH_CSR_ISR1); kvm_save_hw_gcsr(csr, LOONGARCH_CSR_ISR2); --=20 2.39.3 From nobody Mon Feb 9 08:31:08 2026 Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F09C31AF0AF; Wed, 28 Jan 2026 03:03:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769569424; cv=none; b=nb7601UgQKQvghmvUod/lOu/+y0k/2fKkqWWNoH5QWFQ32vHdJ28Zgi/5KATgz4+ZT8/9ribFapEGsnhP0/WspqSmkrhB9PQoVg1kutrMQ98fpybewjVJpDwXeTcitsfVH1PIsuTijmq2QqHJXNANbcjuMZfen6IVyf4LXNFUzU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769569424; c=relaxed/simple; bh=5IF9vTs1CTliJUkSEFAaRm/bX3qtI0wgMi0WxYzm8I4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=N6vR8CFCWqt/CoazgsU8FoukKGgXl5nsZtVr3fZaJJnFb00rGIl1kY+PiTSUg0NXU2CKGgX6YFX3KerUXxsezkO5yQpPZ+/UwlIdgNMCyvZxpiyqV1Gu4DnT8gMImjebDXZ9efwAz+ENFj6/mRzmM0zd849Clqzb3q754gBT9TE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn; spf=pass smtp.mailfrom=loongson.cn; arc=none smtp.client-ip=114.242.206.163 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=loongson.cn Received: from loongson.cn (unknown [10.2.5.213]) by gateway (Coremail) with SMTP id _____8DxfcOGfHlpCWMNAA--.43959S3; Wed, 28 Jan 2026 11:03:34 +0800 (CST) Received: from localhost.localdomain (unknown [10.2.5.213]) by front1 (Coremail) with SMTP id qMiowJBxSeCGfHlpj0g2AA--.40015S2; Wed, 28 Jan 2026 11:03:34 +0800 (CST) From: Bibo Mao To: Huacai Chen , WANG Xuerui , Tianrui Zhao Cc: loongarch@lists.linux.dev, linux-kernel@vger.kernel.org, kvm@vger.kernel.org Subject: [PATCH 4/4] LoongArch: KVM: Add register LOONGARCH_CSR_IPR during vCPU context switch Date: Wed, 28 Jan 2026 11:03:26 +0800 Message-Id: <20260128030326.3377462-5-maobibo@loongson.cn> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20260128030326.3377462-1-maobibo@loongson.cn> References: <20260128030326.3377462-1-maobibo@loongson.cn> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-CM-TRANSID: qMiowJBxSeCGfHlpj0g2AA--.40015S2 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== Content-Type: text/plain; charset="utf-8" Register LOONGARCH_CSR_IPR is interrupt priority setting for nested interrupt handling. Though LoongArch Linux avec driver does not use this register, however KVM hypervisor needs need save or restore this register during vCPU context switch, Linux avec driver may use this register in future or other OS may use it. Signed-off-by: Bibo Mao --- arch/loongarch/kvm/vcpu.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c index 6d9953d0b7be..b224df0f6d0a 100644 --- a/arch/loongarch/kvm/vcpu.c +++ b/arch/loongarch/kvm/vcpu.c @@ -1666,6 +1666,7 @@ static int _kvm_vcpu_load(struct kvm_vcpu *vcpu, int = cpu) kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_ISR1); kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_ISR2); kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_ISR3); + kvm_restore_hw_gcsr(csr, LOONGARCH_CSR_IPR); } =20 /* Restore Root.GINTC from unused Guest.GINTC register */ @@ -1761,6 +1762,7 @@ static int _kvm_vcpu_put(struct kvm_vcpu *vcpu, int c= pu) kvm_save_hw_gcsr(csr, LOONGARCH_CSR_ISR1); kvm_save_hw_gcsr(csr, LOONGARCH_CSR_ISR2); kvm_save_hw_gcsr(csr, LOONGARCH_CSR_ISR3); + kvm_save_hw_gcsr(csr, LOONGARCH_CSR_IPR); } =20 vcpu->arch.aux_inuse |=3D KVM_LARCH_SWCSR_LATEST; --=20 2.39.3