[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v1] arm/optee: Use only least 32 bits for SMC type arg according to SMCCC
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_skakun@xxxxxxxx> --- 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); -- 2.25.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |