Hi Roman,
Thank you for the contribution. Roman Skakun writes: > This patch added additional sanity and increases an understanding for > getting proper value from the first argument for SMC call on aarch64 > according to SMCC Convention. > > [0] ARM DEN0028B, page 12 > > Signed-off-by: Roman Skakun <roman_ska...@epam.com> Acked-by: Volodymyr Babchyk <volodymyr_babc...@epam.com> > --- > xen/arch/arm/tee/optee.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/xen/arch/arm/tee/optee.c b/xen/arch/arm/tee/optee.c > index ee85359742..87060b52b8 100644 > --- a/xen/arch/arm/tee/optee.c > +++ b/xen/arch/arm/tee/optee.c > @@ -1643,7 +1643,8 @@ static bool optee_handle_call(struct cpu_user_regs > *regs) > if ( !ctx ) > return false; > > - switch ( get_user_reg(regs, 0) ) > + /* Only least 32 bits are significant (see ARM DEN 0028B, page 12) */ > + switch ( (uint32_t)get_user_reg(regs, 0) ) > { > case OPTEE_SMC_CALLS_COUNT: > set_user_reg(regs, 0, OPTEE_MEDIATOR_SMC_COUNT); -- Volodymyr Babchuk at EPAM