Re: [PATCH 2/2] firmware: arm_scmi: optee: use optee system invocation

From: Sumit Garg
Date: Tue Feb 07 2023 - 05:01:03 EST


On Mon, 30 Jan 2023 at 15:12, Etienne Carriere
<etienne.carriere@xxxxxxxxxx> wrote:
>
> Changes SCMI optee transport to enable sys_service capability of
> its tee context to leverage provisioned system resources in OP-TEE
> preventing possible deadlock.
>
> Such deadlock could happen when many Linux clients invoke OP-TEE are
> are all suspended waiting for an OP-TEE RPC request access an SCMI
> resource through the SCMI OP-TEE PTA service.
>
> Signed-off-by: Etienne Carriere <etienne.carriere@xxxxxxxxxx>
> ---
> drivers/firmware/arm_scmi/optee.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/firmware/arm_scmi/optee.c b/drivers/firmware/arm_scmi/optee.c
> index 2a7aeab40e54..91840345e946 100644
> --- a/drivers/firmware/arm_scmi/optee.c
> +++ b/drivers/firmware/arm_scmi/optee.c
> @@ -559,6 +559,9 @@ static int scmi_optee_service_probe(struct device *dev)
> if (IS_ERR(tee_ctx))
> return -ENODEV;
>
> + /* SCMI agent can used TEE system service resources */
> + tee_ctx->sys_service = true;
> +

As per the other thread for patch #1, this feature will only be
available with OP-TEE supporting TEE_GEN_CAP_REG_MEM. Can we add a
corresponding conditional check here?

-Sumit

> agent = devm_kzalloc(dev, sizeof(*agent), GFP_KERNEL);
> if (!agent) {
> ret = -ENOMEM;
> --
> 2.25.1
>