diff options
author | Anup Patel <apatel@ventanamicro.com> | 2023-01-28 13:18:25 +0530 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2023-02-07 20:35:26 +0530 |
commit | 06723e124fcbf63a1848c692fad17a023cad5ebc (patch) | |
tree | 6dcad0a8b89cfbd53c0152555994c36b9eb55ca2 | |
parent | c25a6dddc62c84f50e57094bd44e7f9d84907f49 (diff) | |
download | linux-06723e124fcbf63a1848c692fad17a023cad5ebc.tar.gz linux-06723e124fcbf63a1848c692fad17a023cad5ebc.tar.bz2 linux-06723e124fcbf63a1848c692fad17a023cad5ebc.zip |
RISC-V: KVM: Fix privilege mode setting in kvm_riscv_vcpu_trap_redirect()
The kvm_riscv_vcpu_trap_redirect() should set guest privilege mode
to supervisor mode because guest traps/interrupts are always handled
in virtual supervisor mode.
Fixes: 9f7013265112 ("RISC-V: KVM: Handle MMIO exits for VCPU")
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Reviewed-by: Andrew Jones <ajones@ventanamicro.com>
Reviewed-by: Atish Patra <atishp@rivosinc.com>
Signed-off-by: Anup Patel <anup@brainfault.org>
-rw-r--r-- | arch/riscv/kvm/vcpu_exit.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/riscv/kvm/vcpu_exit.c b/arch/riscv/kvm/vcpu_exit.c index c9f741ab26f5..af7c4bc07929 100644 --- a/arch/riscv/kvm/vcpu_exit.c +++ b/arch/riscv/kvm/vcpu_exit.c @@ -160,6 +160,9 @@ void kvm_riscv_vcpu_trap_redirect(struct kvm_vcpu *vcpu, /* Set Guest PC to Guest exception vector */ vcpu->arch.guest_context.sepc = csr_read(CSR_VSTVEC); + + /* Set Guest privilege mode to supervisor */ + vcpu->arch.guest_context.sstatus |= SR_SPP; } /* |