Re: [PATCH 3/3] rtc: optee: simplify OP-TEE context match

From: Alexandre Belloni

Date: Thu Jan 29 2026 - 11:06:46 EST


On 26/01/2026 11:11:26+0100, Rouven Czerwinski via B4 Relay wrote:
> From: Rouven Czerwinski <rouven.czerwinski@xxxxxxxxxx>
>
> Simplify the TEE implementor ID match by returning the boolean
> expression directly instead of going through an if/else.
>
> Signed-off-by: Rouven Czerwinski <rouven.czerwinski@xxxxxxxxxx>
> ---
> drivers/rtc/rtc-optee.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/drivers/rtc/rtc-optee.c b/drivers/rtc/rtc-optee.c
> index 184c6d142801..2f18be3de684 100644
> --- a/drivers/rtc/rtc-optee.c
> +++ b/drivers/rtc/rtc-optee.c
> @@ -541,10 +541,7 @@ static int optee_rtc_read_info(struct device *dev, struct rtc_device *rtc,
>
> static int optee_ctx_match(struct tee_ioctl_version_data *ver, const void *data)
> {
> - if (ver->impl_id == TEE_IMPL_ID_OPTEE)
> - return 1;
> - else
> - return 0;
> + return (ver->impl_id == TEE_IMPL_ID_OPTEE);

I guess the correct way to do this would be:

return !!(ver->impl_id == TEE_IMPL_ID_OPTEE);

But is this change actually generating better code?

Before:

static int optee_ctx_match(struct tee_ioctl_version_data *ver, const void *data)
{
if (ver->impl_id == TEE_IMPL_ID_OPTEE)
0: e5900000 ldr r0, [r0]
return 1;
else
return 0;
}
4: e2400001 sub r0, r0, #1
8: e16f0f10 clz r0, r0
c: e1a002a0 lsr r0, r0, #5
10: e12fff1e bx lr

After:

static int optee_ctx_match(struct tee_ioctl_version_data *ver, const void *data)
{
return !!(ver->impl_id == TEE_IMPL_ID_OPTEE);
0: e5900000 ldr r0, [r0]
}
4: e2400001 sub r0, r0, #1
8: e16f0f10 clz r0, r0
c: e1a002a0 lsr r0, r0, #5
10: e12fff1e bx lr

I'm in favor of keeping the current version.

--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com