Re: [PATCH 3/4] reset: tegra: check BPMP response return code

From: Thierry Reding
Date: Tue Oct 17 2017 - 07:49:20 EST


On Tue, Oct 17, 2017 at 12:52:17PM +0200, Philipp Zabel wrote:
> Hi Thierry,
>
> On Tue, 2017-10-17 at 12:40 +0200, Thierry Reding wrote:
> > On Thu, Sep 07, 2017 at 12:31:03PM +0300, Timo Alho wrote:
> > > Add checks for return code in BPMP response message.
> > >
> > > Signed-off-by: Timo Alho <talho@xxxxxxxxxx>
> > > ---
> > > drivers/reset/tegra/reset-bpmp.c | 9 ++++++++-
> > > 1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > Hi Philipp,
> >
> > Would you provide an Acked-by on this so that I can take it into the
> > Tegra tree? There's a build dependency on patch 1/4 in the series.
>
> Acked-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
>
> to take this via the Tegra tree.

Thanks!

> > Quoting in full since you were not previously on Cc, unfortunately.
> >
> > Timo, please remember to always Cc the relevant maintainers.
> >
> > Thierry
> >
> > > diff --git a/drivers/reset/tegra/reset-bpmp.c b/drivers/reset/tegra/reset-bpmp.c
> > > index 5daf2ee..fac2db6 100644
> > > --- a/drivers/reset/tegra/reset-bpmp.c
> > > +++ b/drivers/reset/tegra/reset-bpmp.c
> > > @@ -23,6 +23,7 @@ static int tegra_bpmp_reset_common(struct reset_controller_dev *rstc,
> > > struct tegra_bpmp *bpmp = to_tegra_bpmp(rstc);
> > > struct mrq_reset_request request;
> > > struct tegra_bpmp_message msg;
> > > + int err;
> > >
> > > memset(&request, 0, sizeof(request));
> > > request.cmd = command;
> > > @@ -33,7 +34,13 @@ static int tegra_bpmp_reset_common(struct reset_controller_dev *rstc,
> > > msg.tx.data = &request;
> > > msg.tx.size = sizeof(request);
> > >
> > > - return tegra_bpmp_transfer(bpmp, &msg);
> > > + err = tegra_bpmp_transfer(bpmp, &msg);
> > > + if (err < 0)
> > > + return err;
> > > + else if (msg.rx.ret < 0)
> > > + return -EINVAL;
>
> I don't really understand why you complicate the call sites like this
> instead of just letting tegra_bmp_transfer return -EINVAL if msg.rx.ret
> < 0, but I haven't seen the other patches.

Timo replied to a similar question from Jon here:

https://patchwork.ozlabs.org/patch/810934/

Essentially this boils down to that there are cases where we may want to
know the exact error because it is relevant. In this case, we don't, but
BPMP provides a number of other services where the errors may be useful.

Thierry

Attachment: signature.asc
Description: PGP signature