summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2021-11-17 10:30:29 +0530
committerAnup Patel <anup@brainfault.org>2021-11-22 10:36:19 +0530
commit74c2e97b01846eb237b7819a3e2944455cfdb26a (patch)
treeed58b2c2b5742184d495c766a15c4c880e1f03ed /arch
parent756e1fc16505c31c9f86b602fcb8e2bc55c4b7e5 (diff)
downloadlinux-74c2e97b01846eb237b7819a3e2944455cfdb26a.tar.bz2
RISC-V: KVM: Fix incorrect KVM_MAX_VCPUS value
The KVM_MAX_VCPUS value is supposed to be aligned with number of VMID bits in the hgatp CSR but the current KVM_MAX_VCPUS value is aligned with number of ASID bits in the satp CSR. Fixes: 99cdc6c18c2d ("RISC-V: Add initial skeletal KVM support") Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atishp@rivosinc.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/riscv/include/asm/kvm_host.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/arch/riscv/include/asm/kvm_host.h b/arch/riscv/include/asm/kvm_host.h
index 25ba21f98504..2639b9ee48f9 100644
--- a/arch/riscv/include/asm/kvm_host.h
+++ b/arch/riscv/include/asm/kvm_host.h
@@ -12,14 +12,12 @@
#include <linux/types.h>
#include <linux/kvm.h>
#include <linux/kvm_types.h>
+#include <asm/csr.h>
#include <asm/kvm_vcpu_fp.h>
#include <asm/kvm_vcpu_timer.h>
-#ifdef CONFIG_64BIT
-#define KVM_MAX_VCPUS (1U << 16)
-#else
-#define KVM_MAX_VCPUS (1U << 9)
-#endif
+#define KVM_MAX_VCPUS \
+ ((HGATP_VMID_MASK >> HGATP_VMID_SHIFT) + 1)
#define KVM_HALT_POLL_NS_DEFAULT 500000