Re: [PATCH] optee: don't fail on unsuccessful device enumeration
From: Sumit Garg
Date: Wed May 13 2020 - 04:24:16 EST
Hi Volodymyr,
On Wed, 13 May 2020 at 13:30, Jens Wiklander <jens.wiklander@xxxxxxxxxx> wrote:
>
> Hi Volodymyr,
>
> On Wed, May 13, 2020 at 2:36 AM Volodymyr Babchuk
> <vlad.babchuk@xxxxxxxxx> wrote:
> >
> > optee_enumerate_devices() can fail for multiple of reasons. For
> > example, I encountered issue when Xen OP-TEE mediator NACKed
> > PTA_CMD_GET_DEVICES call.
Could you share a detailed description of the issue which you are
facing? optee_enumerate_devices() is a simple invocation of pseudo TA
and cases where OP-TEE doesn't provide corresponding pseudo TA are
handled very well.
> > This should not result in driver
> > initialization error because this is an optional feature.
I wouldn't call it an optional feature as there might be real kernel
drivers dependent on this enumeration. Also, it is a simple example to
self test OP-TEE functionality too. So I am not sure how much
functional OP-TEE would be if this basic TA invocation fails.
-Sumit
> >
> > Thus, it is better to print warning, instead of termination driver
> > initialization.
> >
> > Signed-off-by: Volodymyr Babchuk <vlad.babchuk@xxxxxxxxx>
> > ---
>
> Looks good. Didn't apply directly at latest, but the conflict was easy
> enough to resolve.
>
> I'll pick up this in a day unless someone objects.
>
> I'll add a
> Fixes: c3fa24af9244 ("tee: optee: add TEE bus device enumeration support")
> Line.
>
> Thanks,
> Jens
>
> >
> > resend: fixed email in s-o-b tag. Sorry for the noise
> >
> > drivers/tee/optee/core.c | 6 ++----
> > 1 file changed, 2 insertions(+), 4 deletions(-)
> >
> > diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
> > index 34409c916882..a053930032f2 100644
> > --- a/drivers/tee/optee/core.c
> > +++ b/drivers/tee/optee/core.c
> > @@ -728,10 +728,8 @@ static int __init optee_driver_init(void)
> > return PTR_ERR(optee);
> >
> > rc = optee_enumerate_devices();
> > - if (rc) {
> > - optee_remove(optee);
> > - return rc;
> > - }
> > + if (rc)
> > + pr_warn("can't enumerate optee devices: %d\n", rc);
> >
> > pr_info("initialized driver\n");
> >
> > --
> > 2.26.2
> >