diff options
author | Anup Patel <apatel@ventanamicro.com> | 2022-12-07 04:47:43 +0100 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2022-12-07 04:47:43 +0100 |
commit | 52ec4b695dbe0552bb994c4149e9122610a76668 (patch) | |
tree | 0440307f122acff0d5c6af5e8ab3482b119f086b /arch/riscv/kvm/vcpu.c | |
parent | RISC-V: Export sbi_get_mvendorid() and friends (diff) | |
download | linux-52ec4b695dbe0552bb994c4149e9122610a76668.tar.xz linux-52ec4b695dbe0552bb994c4149e9122610a76668.zip |
RISC-V: KVM: Save mvendorid, marchid, and mimpid when creating VCPU
We should save VCPU mvendorid, marchid, and mimpid at the time
of creating VCPU so that we don't have to do host SBI call every
time Guest/VM ask for these details.
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Atish Patra <atishp@rivosinc.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Signed-off-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'arch/riscv/kvm/vcpu.c')
-rw-r--r-- | arch/riscv/kvm/vcpu.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/riscv/kvm/vcpu.c b/arch/riscv/kvm/vcpu.c index 68c86f632d37..312a8a926867 100644 --- a/arch/riscv/kvm/vcpu.c +++ b/arch/riscv/kvm/vcpu.c @@ -21,6 +21,7 @@ #include <asm/csr.h> #include <asm/cacheflush.h> #include <asm/hwcap.h> +#include <asm/sbi.h> const struct _kvm_stats_desc kvm_vcpu_stats_desc[] = { KVM_GENERIC_VCPU_STATS(), @@ -171,6 +172,11 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu) set_bit(host_isa, vcpu->arch.isa); } + /* Setup vendor, arch, and implementation details */ + vcpu->arch.mvendorid = sbi_get_mvendorid(); + vcpu->arch.marchid = sbi_get_marchid(); + vcpu->arch.mimpid = sbi_get_mimpid(); + /* Setup VCPU hfence queue */ spin_lock_init(&vcpu->arch.hfence_lock); |