RISC-V: KVM: Allow Zaamo/Zalrsc extensions for Guest/VM
authorClément Léger <cleger@rivosinc.com>
Wed, 19 Jun 2024 15:39:11 +0000 (17:39 +0200)
committerAlexandre Ghiti <alexghiti@rivosinc.com>
Wed, 19 Mar 2025 12:03:46 +0000 (12:03 +0000)
Extend the KVM ISA extension ONE_REG interface to allow KVM user space
to detect and enable Zaamo/Zalrsc extensions for Guest/VM.

Signed-off-by: Clément Léger <cleger@rivosinc.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Link: https://lore.kernel.org/r/20240619153913.867263-5-cleger@rivosinc.com
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
arch/riscv/include/uapi/asm/kvm.h
arch/riscv/kvm/vcpu_onereg.c

index f06bc5e..5f59fd2 100644 (file)
@@ -182,6 +182,8 @@ enum KVM_RISCV_ISA_EXT_ID {
        KVM_RISCV_ISA_EXT_SVVPTC,
        KVM_RISCV_ISA_EXT_ZABHA,
        KVM_RISCV_ISA_EXT_ZICCRSE,
+       KVM_RISCV_ISA_EXT_ZAAMO,
+       KVM_RISCV_ISA_EXT_ZALRSC,
        KVM_RISCV_ISA_EXT_MAX,
 };
 
index f6d27b5..f05f12f 100644 (file)
@@ -47,8 +47,10 @@ static const unsigned long kvm_isa_ext_arr[] = {
        KVM_ISA_EXT_ARR(SVNAPOT),
        KVM_ISA_EXT_ARR(SVPBMT),
        KVM_ISA_EXT_ARR(SVVPTC),
+       KVM_ISA_EXT_ARR(ZAAMO),
        KVM_ISA_EXT_ARR(ZABHA),
        KVM_ISA_EXT_ARR(ZACAS),
+       KVM_ISA_EXT_ARR(ZALRSC),
        KVM_ISA_EXT_ARR(ZAWRS),
        KVM_ISA_EXT_ARR(ZBA),
        KVM_ISA_EXT_ARR(ZBB),
@@ -149,8 +151,10 @@ static bool kvm_riscv_vcpu_isa_disable_allowed(unsigned long ext)
        case KVM_RISCV_ISA_EXT_SVINVAL:
        case KVM_RISCV_ISA_EXT_SVNAPOT:
        case KVM_RISCV_ISA_EXT_SVVPTC:
+       case KVM_RISCV_ISA_EXT_ZAAMO:
        case KVM_RISCV_ISA_EXT_ZABHA:
        case KVM_RISCV_ISA_EXT_ZACAS:
+       case KVM_RISCV_ISA_EXT_ZALRSC:
        case KVM_RISCV_ISA_EXT_ZAWRS:
        case KVM_RISCV_ISA_EXT_ZBA:
        case KVM_RISCV_ISA_EXT_ZBB: