]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RISC-V: KVM: Fix error code returned for Ssaia ONE_REG
authorAnup Patel <anup.patel@oss.qualcomm.com>
Tue, 20 Jan 2026 07:59:48 +0000 (13:29 +0530)
committerAnup Patel <anup@brainfault.org>
Fri, 6 Mar 2026 05:50:30 +0000 (11:20 +0530)
Return -ENOENT for Ssaia ONE_REG when Ssaia is not enabled
for a VCPU.

This will make Ssaia ONE_REG error codes consistent with
other ONE_REG interfaces of KVM RISC-V.

Fixes: 2a88f38cd58d ("RISC-V: KVM: return ENOENT in *_one_reg() when reg is unknown")
Signed-off-by: Anup Patel <anup.patel@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260120080013.2153519-3-anup.patel@oss.qualcomm.com
Signed-off-by: Anup Patel <anup@brainfault.org>
arch/riscv/kvm/aia.c

index 38de97d2f5b85fdb14ac94733f0f26fff507394c..5ec503288555d19ec4422a759487555ad7376f73 100644 (file)
@@ -185,6 +185,8 @@ int kvm_riscv_vcpu_aia_get_csr(struct kvm_vcpu *vcpu,
        struct kvm_vcpu_aia_csr *csr = &vcpu->arch.aia_context.guest_csr;
        unsigned long regs_max = sizeof(struct kvm_riscv_aia_csr) / sizeof(unsigned long);
 
+       if (!riscv_isa_extension_available(vcpu->arch.isa, SSAIA))
+               return -ENOENT;
        if (reg_num >= regs_max)
                return -ENOENT;
 
@@ -204,6 +206,8 @@ int kvm_riscv_vcpu_aia_set_csr(struct kvm_vcpu *vcpu,
        struct kvm_vcpu_aia_csr *csr = &vcpu->arch.aia_context.guest_csr;
        unsigned long regs_max = sizeof(struct kvm_riscv_aia_csr) / sizeof(unsigned long);
 
+       if (!riscv_isa_extension_available(vcpu->arch.isa, SSAIA))
+               return -ENOENT;
        if (reg_num >= regs_max)
                return -ENOENT;