[PATCH 1/5] riscv: KVM: Fix hart suspend status check

Anup Patel anup at brainfault.org
Mon Feb 17 02:36:26 PST 2025


On Mon, Feb 17, 2025 at 2:15 PM Andrew Jones <ajones at ventanamicro.com> wrote:
>
> "Not stopped" means started or suspended so we need to check for
> a single state in order to have a chance to check for each state.
> Also, we need to use target_vcpu when checking for the suspend
> state.
>
> Fixes: 763c8bed8c05 ("RISC-V: KVM: Implement SBI HSM suspend call")
> Signed-off-by: Andrew Jones <ajones at ventanamicro.com>

LGTM.

Reviewed-by: Anup Patel <anup at brainfault.org>

Regards,
Anup

> ---
>  arch/riscv/kvm/vcpu_sbi_hsm.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/riscv/kvm/vcpu_sbi_hsm.c b/arch/riscv/kvm/vcpu_sbi_hsm.c
> index dce667f4b6ab..13a35eb77e8e 100644
> --- a/arch/riscv/kvm/vcpu_sbi_hsm.c
> +++ b/arch/riscv/kvm/vcpu_sbi_hsm.c
> @@ -79,12 +79,12 @@ static int kvm_sbi_hsm_vcpu_get_status(struct kvm_vcpu *vcpu)
>         target_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, target_vcpuid);
>         if (!target_vcpu)
>                 return SBI_ERR_INVALID_PARAM;
> -       if (!kvm_riscv_vcpu_stopped(target_vcpu))
> -               return SBI_HSM_STATE_STARTED;
> -       else if (vcpu->stat.generic.blocking)
> +       if (kvm_riscv_vcpu_stopped(target_vcpu))
> +               return SBI_HSM_STATE_STOPPED;
> +       else if (target_vcpu->stat.generic.blocking)
>                 return SBI_HSM_STATE_SUSPENDED;
>         else
> -               return SBI_HSM_STATE_STOPPED;
> +               return SBI_HSM_STATE_STARTED;
>  }
>
>  static int kvm_sbi_ext_hsm_handler(struct kvm_vcpu *vcpu, struct kvm_run *run,
> --
> 2.48.1
>



More information about the linux-riscv mailing list