All of lore.kernel.org
 help / color / mirror / Atom feed
From: Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
To: Julien Grall <julien@xen.org>
Cc: Roman Skakun <Roman_Skakun@epam.com>,
	"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
	Stefano Stabellini <sstabellini@kernel.org>
Subject: Re: [PATCH v1] arm/optee: Use only least 32 bits for SMC type arg according to SMCCC
Date: Wed, 6 Jan 2021 23:22:16 +0000	[thread overview]
Message-ID: <87turt4pnc.fsf@epam.com> (raw)
In-Reply-To: <48f8e967-2454-7d4b-8e86-0b1baddef52e@xen.org>


Hi Julien,

Julien Grall writes:

> Hi Roman,
>
> On 06/01/2021 11:26, Roman Skakun wrote:
>> 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.
>
> I would suggest the following commit message:
>
> "xen/arm: optee: The function identifier is always 32-bit
>
> Per the SMCCC specification (see section 3.1 in ARM DEN 0028D), the
> function identifier is only stored in the least significant
> 32-bits. The most significant 32-bits should be ignored.
>
> The function optee_handle_call() is now updated to ignore the most
> significant 32-bits.
>
> "
>
> Note that I used the version D rather than B because the latter has
> buggy wording (it seems to suggest that the least significants bits 
> should be ignored).
>
> Furthermore, I checked vsmc.c (the layer that dispatch the SMC) and it
> was already handled properly thanks to commit 7f4217cc6057 "xen/arm: 
> vsmc: The function identifier is always 32-bit".
>
>> [0] ARM DEN0028B, page 12
>> Signed-off-by: Roman Skakun <roman_skakun@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) */
>
> I would suggest:
>
> /* The function identifier is always stored in the least significant
> 32-bit (see section ARM DEN 0028D) */
>
> I can update it while committing, if both Volodymyr and you are happy
> with changes.

I'm totally fine with the proposed changes. Thank you for tidying this up.

-- 
Volodymyr Babchuk at EPAM

  reply	other threads:[~2021-01-06 23:22 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-06 11:26 [PATCH v1] arm/optee: Use only least 32 bits for SMC type arg according to SMCCC Roman Skakun
2021-01-06 17:24 ` Volodymyr Babchuk
2021-01-06 18:02 ` Julien Grall
2021-01-06 23:22   ` Volodymyr Babchuk [this message]
2021-01-08 10:27     ` Julien Grall

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87turt4pnc.fsf@epam.com \
    --to=volodymyr_babchuk@epam.com \
    --cc=Roman_Skakun@epam.com \
    --cc=julien@xen.org \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.