On Mon, Feb 17, 2025 at 2:15 PM Andrew Jones <ajones@xxxxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxxxx> LGTM. Reviewed-by: Anup Patel <anup@xxxxxxxxxxxxxx> 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 >