diff mbox series

[v2] tee: optee: Change printing during optee_probe

Message ID 20210310133511.3048227-1-ilias.apalodimas@linaro.org
State Accepted
Commit 92e84896112037833e429d629f87cedbeb255d5a
Headers show
Series [v2] tee: optee: Change printing during optee_probe | expand

Commit Message

Ilias Apalodimas March 10, 2021, 1:35 p.m. UTC
Right now the error messages when optee has a version mismatch or shared
memory is not configured are done with a debug().
That's not very convenient since you have to enable debugging to figure
out what's going on, although this is an actual error.

So let's switch the debug() -> dev_err() and report those explicitly.

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

---
 drivers/tee/optee/core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

-- 
2.30.1

Comments

Simon Glass March 12, 2021, 4:45 a.m. UTC | #1
Hi Ilias,

On Wed, 10 Mar 2021 at 06:35, Ilias Apalodimas
<ilias.apalodimas@linaro.org> wrote:
>

> Right now the error messages when optee has a version mismatch or shared

> memory is not configured are done with a debug().

> That's not very convenient since you have to enable debugging to figure

> out what's going on, although this is an actual error.


The code that probes the device should report the error. If you put
errors in a device driver it bloats the code and also it makes it
impossible for the caller to suppress the  error, e.g. if it is OK for
the device to not probe.


>

> So let's switch the debug() -> dev_err() and report those explicitly.

>

> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

> ---

>  drivers/tee/optee/core.c | 6 +++---

>  1 file changed, 3 insertions(+), 3 deletions(-)
Ilias Apalodimas March 12, 2021, 5:07 a.m. UTC | #2
On Thu, Mar 11, 2021 at 09:45:46PM -0700, Simon Glass wrote:
> Hi Ilias,

> 

> On Wed, 10 Mar 2021 at 06:35, Ilias Apalodimas

> <ilias.apalodimas@linaro.org> wrote:

> >

> > Right now the error messages when optee has a version mismatch or shared

> > memory is not configured are done with a debug().

> > That's not very convenient since you have to enable debugging to figure

> > out what's going on, although this is an actual error.

> 

> The code that probes the device should report the error. 


I am notr sure I am following here. This gets called from the core dm code. Is
there a callback in that, so we can register a specific print per device?
If not now how do you expect the core to habdle each specific driver error
code and print a message that makes sense?

> If you put

> errors in a device driver it bloats the code and also it makes it

> impossible for the caller to suppress the  error, e.g. if it is OK for

> the device to not probe.


Well in the op-tee case it's an explicit node you need to add in the DTB. So i
am not really sure this applies here.

Thanks
/Ilias

> 

> 

> >

> > So let's switch the debug() -> dev_err() and report those explicitly.

> >

> > Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

> > Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

> > ---

> >  drivers/tee/optee/core.c | 6 +++---

> >  1 file changed, 3 insertions(+), 3 deletions(-)
Simon Glass March 12, 2021, 3:47 p.m. UTC | #3
Hi Ilias,

On Thu, 11 Mar 2021 at 22:07, Ilias Apalodimas
<ilias.apalodimas@linaro.org> wrote:
>

> On Thu, Mar 11, 2021 at 09:45:46PM -0700, Simon Glass wrote:

> > Hi Ilias,

> >

> > On Wed, 10 Mar 2021 at 06:35, Ilias Apalodimas

> > <ilias.apalodimas@linaro.org> wrote:

> > >

> > > Right now the error messages when optee has a version mismatch or shared

> > > memory is not configured are done with a debug().

> > > That's not very convenient since you have to enable debugging to figure

> > > out what's going on, although this is an actual error.

> >

> > The code that probes the device should report the error.

>

> I am notr sure I am following here. This gets called from the core dm code. Is

> there a callback in that, so we can register a specific print per device?

> If not now how do you expect the core to habdle each specific driver error

> code and print a message that makes sense?


Well, who probes the device? Somewhere there is a call to
uclass_first_device(...) or similar, and that should receive the
error-return value.

>

> > If you put

> > errors in a device driver it bloats the code and also it makes it

> > impossible for the caller to suppress the  error, e.g. if it is OK for

> > the device to not probe.

>

> Well in the op-tee case it's an explicit node you need to add in the DTB. So i

> am not really sure this applies here.


I'm not sure, but you might be thinking of the 'bind' step. For probe
it is OK for devices to fail to probe.

Regards,
Simon


> >

> >

> > >

> > > So let's switch the debug() -> dev_err() and report those explicitly.

> > >

> > > Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

> > > Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

> > > ---

> > >  drivers/tee/optee/core.c | 6 +++---

> > >  1 file changed, 3 insertions(+), 3 deletions(-)
Tom Rini April 13, 2021, 2:28 p.m. UTC | #4
On Wed, Mar 10, 2021 at 03:35:11PM +0200, Ilias Apalodimas wrote:

> Right now the error messages when optee has a version mismatch or shared

> memory is not configured are done with a debug().

> That's not very convenient since you have to enable debugging to figure

> out what's going on, although this is an actual error.

> 

> So let's switch the debug() -> dev_err() and report those explicitly.

> 

> Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>

> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>


Applied to u-boot/master, thanks!

-- 
Tom
diff mbox series

Patch

diff --git a/drivers/tee/optee/core.c b/drivers/tee/optee/core.c
index b898c32edc0b..73dbb22ba097 100644
--- a/drivers/tee/optee/core.c
+++ b/drivers/tee/optee/core.c
@@ -624,14 +624,14 @@  static int optee_probe(struct udevice *dev)
 	u32 sec_caps;
 
 	if (!is_optee_api(pdata->invoke_fn)) {
-		debug("%s: OP-TEE api uid mismatch\n", __func__);
+		dev_err(dev, "OP-TEE api uid mismatch\n");
 		return -ENOENT;
 	}
 
 	print_os_revision(dev, pdata->invoke_fn);
 
 	if (!api_revision_is_compatible(pdata->invoke_fn)) {
-		debug("%s: OP-TEE api revision mismatch\n", __func__);
+		dev_err(dev, "OP-TEE api revision mismatch\n");
 		return -ENOENT;
 	}
 
@@ -642,7 +642,7 @@  static int optee_probe(struct udevice *dev)
 	 */
 	if (!exchange_capabilities(pdata->invoke_fn, &sec_caps) ||
 	    !(sec_caps & OPTEE_SMC_SEC_CAP_DYNAMIC_SHM)) {
-		debug("%s: OP-TEE capabilities mismatch\n", __func__);
+		dev_err(dev, "OP-TEE capabilities mismatch\n");
 		return -ENOENT;
 	}