[PATCH 5/5] riscv: KVM: Fix SBI sleep_type use

Anup Patel anup at brainfault.org
Mon Feb 17 02:57:07 PST 2025


On Mon, Feb 17, 2025 at 2:15 PM Andrew Jones <ajones at ventanamicro.com> wrote:
>
> The spec says sleep_type is 32 bits wide and "In case the data is
> defined as 32bit wide, higher privilege software must ensure that it
> only uses 32 bit data." Mask off upper bits of sleep_type before
> using it.
>
> Fixes: 023c15151fbb ("RISC-V: KVM: Add SBI system suspend support")
> 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_system.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/riscv/kvm/vcpu_sbi_system.c b/arch/riscv/kvm/vcpu_sbi_system.c
> index 5d55e08791fa..bc0ebba89003 100644
> --- a/arch/riscv/kvm/vcpu_sbi_system.c
> +++ b/arch/riscv/kvm/vcpu_sbi_system.c
> @@ -4,6 +4,7 @@
>   */
>
>  #include <linux/kvm_host.h>
> +#include <linux/wordpart.h>
>
>  #include <asm/kvm_vcpu_sbi.h>
>  #include <asm/sbi.h>
> @@ -19,7 +20,7 @@ static int kvm_sbi_ext_susp_handler(struct kvm_vcpu *vcpu, struct kvm_run *run,
>
>         switch (funcid) {
>         case SBI_EXT_SUSP_SYSTEM_SUSPEND:
> -               if (cp->a0 != SBI_SUSP_SLEEP_TYPE_SUSPEND_TO_RAM) {
> +               if (lower_32_bits(cp->a0) != SBI_SUSP_SLEEP_TYPE_SUSPEND_TO_RAM) {
>                         retdata->err_val = SBI_ERR_INVALID_PARAM;
>                         return 0;
>                 }
> --
> 2.48.1
>



More information about the linux-riscv mailing list