[PATCH] RISC-V: KVM: Fix builds without CONFIG_RISCV_ISA_V

slack up yxcnew at outlook.com
Wed Oct 21 10:31:44 PDT 2026


From: Xiaochun Yu <yxcnew at outlook.com>

Commit b5060a4aa33d ("RISC-V: KVM: fix vcpu vector context
handling for kernel-mode vector") made the KVM vCPU load and put paths
call get_cpu_vector_context() and put_cpu_vector_context()
unconditionally.  It also added an unconditional call to
__kvm_riscv_vector_restore() on the guest entry path.

The no-op definitions of the first two helpers live in <asm/vector.h>,
but <asm/kvm_vcpu_vector.h> includes that header only when
CONFIG_RISCV_ISA_V is enabled.  The KVM header also does not provide a
no-op __kvm_riscv_vector_restore() in its disabled branch.  As a result,
a KVM build without CONFIG_RISCV_ISA_V fails with missing helper
declarations.

Include <asm/vector.h> unconditionally to reuse its existing no-op
helpers, and provide the missing KVM restore stub when Vector support is
disabled.  This does not change the Vector-enabled path.

Fixes: b5060a4aa33d ("RISC-V: KVM: fix vcpu vector context handling for kernel-mode vector")
Cc: stable at vger.kernel.org
Signed-off-by: Xiaochun Yu <yxcnew at outlook.com>
---
This single patch fixes a build regression when KVM is enabled without the
RISC-V Vector extension.

Tested on base a804c5742bff (Torvalds master):

- CONFIG_RISCV_ISA_V=n, CONFIG_KVM=m: full Image modules build passed.
- CONFIG_RISCV_ISA_V=y, CONFIG_KVM=m: vcpu.o and vcpu_vector.o rebuilt.
---
 arch/riscv/include/asm/kvm_vcpu_vector.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/riscv/include/asm/kvm_vcpu_vector.h b/arch/riscv/include/asm/kvm_vcpu_vector.h
index 6371d5ea5392..ebc619ed67dd 100644
--- a/arch/riscv/include/asm/kvm_vcpu_vector.h
+++ b/arch/riscv/include/asm/kvm_vcpu_vector.h
@@ -11,9 +11,9 @@
 #define __KVM_VCPU_RISCV_VECTOR_H
 
 #include <linux/types.h>
+#include <asm/vector.h>
 
 #ifdef CONFIG_RISCV_ISA_V
-#include <asm/vector.h>
 #include <asm/kvm_host.h>
 
 static __always_inline void __kvm_riscv_vector_save(struct kvm_cpu_context *context)
@@ -55,6 +55,10 @@ static inline void kvm_riscv_v_exit(void)
 
 struct kvm_cpu_context;
 
+static inline void __kvm_riscv_vector_restore(struct kvm_cpu_context *context)
+{
+}
+
 static inline void kvm_riscv_vcpu_vector_reset(struct kvm_vcpu *vcpu)
 {
 }

---
base-commit: a804c5742bff224d4cb4d25dd383554d598be32b
change-id: 20261021-ospp-c1-b4-submit-e22dc09faf5a

Best regards,
-- 
slack up <yxcnew at outlook.com>




More information about the linux-riscv mailing list