Re: [PATCH] optee: use driver internal tee_contex for some rpc

From: Jens Wiklander
Date: Thu Feb 03 2022 - 08:08:38 EST


On Fri, Jan 28, 2022 at 6:46 AM Sumit Garg <sumit.garg@xxxxxxxxxx> wrote:
>
> On Thu, 27 Jan 2022 at 19:59, Jens Wiklander <jens.wiklander@xxxxxxxxxx> wrote:
> >
> > Adds a driver private tee_context by moving the tee_context in struct
> > optee_notif to struct optee. This tee_context was previously used when
> > doing internal calls to secure world to deliver notification.
> >
> > The new driver internal tee_context is now also when allocating driver
> > private shared memory. This decouples the shared memory object from its
> > original tee_context. This is needed when the life time of such a memory
> > allocation outlives the client tee_context.
> >
> > This patch fixes the problem described below:
> >
> > The addition of a shutdown hook by commit f25889f93184 ("optee: fix tee out
> > of memory failure seen during kexec reboot") introduced a kernel shutdown
> > regression that can be triggered after running the OP-TEE xtest suites.
> >
> > Once the shutdown hook is called it is not possible to communicate any more
> > with the supplicant process because the system is not scheduling task any
> > longer. Thus if the optee driver shutdown path receives a supplicant RPC
> > request from the OP-TEE we will deadlock the kernel's shutdown.
> >
> > Fixes: f25889f93184 ("optee: fix tee out of memory failure seen during kexec reboot")
> > Fixes: 217e0250cccb ("tee: use reference counting for tee_context")
> > Reported-by: Lars Persson <larper@xxxxxxxx>
> > Cc: stable@xxxxxxxxxxxxxxx
> > Signed-off-by: Jens Wiklander <jens.wiklander@xxxxxxxxxx>
> > ---
> >
> > This patch is from "optee: add driver private tee_context" and "optee: use
> > driver internal tee_contex for some rpc" in [1] combined into one patch for
> > easier tracking. It turned out that those two patches fixes reported
> > problem so I'm breaking out this from the patchset in order to target it
> > for the v5.17.
> >
> > [1] https://lore.kernel.org/lkml/20220125162938.838382-1-jens.wiklander@xxxxxxxxxx/
> >
> > drivers/tee/optee/core.c | 1 +
> > drivers/tee/optee/ffa_abi.c | 77 +++++++++++++++++--------------
> > drivers/tee/optee/optee_private.h | 5 +-
> > drivers/tee/optee/smc_abi.c | 48 +++++++------------
> > 4 files changed, 64 insertions(+), 67 deletions(-)
> >
>
> Reviewed-by: Sumit Garg <sumit.garg@xxxxxxxxxx>

Thanks, I'm picking this up now.

/Jens