From: Sudeep Holla <sudeep.holla@arm.com>
To: Etienne Carriere <etienne.carriere@linaro.org>
Cc: linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Sudeep Holla <sudeep.holla@arm.com>
Subject: Re: [PATCH] firmware: arm_scmi: fix SMCCC_RET_NOT_SUPPORTED management
Date: Fri, 15 May 2020 10:34:24 +0100 [thread overview]
Message-ID: <20200515093424.GC23671@bogus> (raw)
In-Reply-To: <CAN5uoS_bimZsFqwaODRRWeCe15JMepQa2z9J0+dq7qNfwxRsug@mail.gmail.com>
On Thu, May 14, 2020 at 05:06:22PM +0200, Etienne Carriere wrote:
> On Thu, 14 May 2020 at 16:29, Sudeep Holla <sudeep.holla@arm.com> wrote:
> >
> > On Thu, May 14, 2020 at 10:24:28AM +0200, Etienne Carriere wrote:
> > > Fix management of argument a0 output value of arm_smccc_1_1_invoke() that
> > > should consider only SMCCC_RET_NOT_SUPPORTED as reporting an unsupported
> > > function ID as correctly stated in the inline comment.
> > >
> >
> > I agree on the comment part, but ...
> >
> > > Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
> > > ---
> > > drivers/firmware/arm_scmi/smc.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/firmware/arm_scmi/smc.c b/drivers/firmware/arm_scmi/smc.c
> > > index 49bc4b0e8428..637ad439545f 100644
> > > --- a/drivers/firmware/arm_scmi/smc.c
> > > +++ b/drivers/firmware/arm_scmi/smc.c
> > > @@ -115,7 +115,7 @@ static int smc_send_message(struct scmi_chan_info *cinfo,
> > > mutex_unlock(&scmi_info->shmem_lock);
> > >
> > > /* Only SMCCC_RET_NOT_SUPPORTED is valid error code */
> > > - if (res.a0)
> > > + if (res.a0 == SMCCC_RET_NOT_SUPPORTED)
> > > return -EOPNOTSUPP;
> >
> > Now this will return 0 for all values other than SMCCC_RET_NOT_SUPPORTED.
> > Is that what we need ? Or do you see non-zero res.a0 for a success case ?
> > If later, we need some fixing, otherwise it is safer to leave it as is
> > IMO.
>
> Firmware following SMCCC v1.x for some OEM/SiP invocation may simply
> not modify invocation register argument a0 on invocation with a
> SCMI-SMC transport function ID.
Yikes, I need to check specification again for this. I will also
check with the firmware implementation team/
> Resulting in res.a0 == scmi_info->func_id here. Which is, by SMCCC
> v1.x not an error.
>
But that may get fatal the result in some other cases, not here for sure.
But I would rather flag that as error so that it is fixed. Anyways I will
check on this again/
> From SMCCC v1.x only SMCCC_RET_NOT_SUPPORTED (-1 signed extended is a
> reserved ) is a generic return error whatever function ID value.
>
Not really, there are couple more I think now. But yes I need to check
on the generic return part.
> Or consider part of the SCMI-SMC transport API that output arg a0
> shall be 0 on success, SMCCC_RET_NOT_SUPPORTED if function ID is not
> supported and any non-zero value for non-generic **error** codes.
>
I prefer that. Anyways I will check and if anything changes I will ping
back on this thread.
--
Regards,
Sudeep
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
WARNING: multiple messages have this Message-ID (diff)
From: Sudeep Holla <sudeep.holla@arm.com>
To: Etienne Carriere <etienne.carriere@linaro.org>
Cc: linux-kernel@vger.kernel.org, Sudeep Holla <sudeep.holla@arm.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] firmware: arm_scmi: fix SMCCC_RET_NOT_SUPPORTED management
Date: Fri, 15 May 2020 10:34:24 +0100 [thread overview]
Message-ID: <20200515093424.GC23671@bogus> (raw)
In-Reply-To: <CAN5uoS_bimZsFqwaODRRWeCe15JMepQa2z9J0+dq7qNfwxRsug@mail.gmail.com>
On Thu, May 14, 2020 at 05:06:22PM +0200, Etienne Carriere wrote:
> On Thu, 14 May 2020 at 16:29, Sudeep Holla <sudeep.holla@arm.com> wrote:
> >
> > On Thu, May 14, 2020 at 10:24:28AM +0200, Etienne Carriere wrote:
> > > Fix management of argument a0 output value of arm_smccc_1_1_invoke() that
> > > should consider only SMCCC_RET_NOT_SUPPORTED as reporting an unsupported
> > > function ID as correctly stated in the inline comment.
> > >
> >
> > I agree on the comment part, but ...
> >
> > > Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org>
> > > ---
> > > drivers/firmware/arm_scmi/smc.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/firmware/arm_scmi/smc.c b/drivers/firmware/arm_scmi/smc.c
> > > index 49bc4b0e8428..637ad439545f 100644
> > > --- a/drivers/firmware/arm_scmi/smc.c
> > > +++ b/drivers/firmware/arm_scmi/smc.c
> > > @@ -115,7 +115,7 @@ static int smc_send_message(struct scmi_chan_info *cinfo,
> > > mutex_unlock(&scmi_info->shmem_lock);
> > >
> > > /* Only SMCCC_RET_NOT_SUPPORTED is valid error code */
> > > - if (res.a0)
> > > + if (res.a0 == SMCCC_RET_NOT_SUPPORTED)
> > > return -EOPNOTSUPP;
> >
> > Now this will return 0 for all values other than SMCCC_RET_NOT_SUPPORTED.
> > Is that what we need ? Or do you see non-zero res.a0 for a success case ?
> > If later, we need some fixing, otherwise it is safer to leave it as is
> > IMO.
>
> Firmware following SMCCC v1.x for some OEM/SiP invocation may simply
> not modify invocation register argument a0 on invocation with a
> SCMI-SMC transport function ID.
Yikes, I need to check specification again for this. I will also
check with the firmware implementation team/
> Resulting in res.a0 == scmi_info->func_id here. Which is, by SMCCC
> v1.x not an error.
>
But that may get fatal the result in some other cases, not here for sure.
But I would rather flag that as error so that it is fixed. Anyways I will
check on this again/
> From SMCCC v1.x only SMCCC_RET_NOT_SUPPORTED (-1 signed extended is a
> reserved ) is a generic return error whatever function ID value.
>
Not really, there are couple more I think now. But yes I need to check
on the generic return part.
> Or consider part of the SCMI-SMC transport API that output arg a0
> shall be 0 on success, SMCCC_RET_NOT_SUPPORTED if function ID is not
> supported and any non-zero value for non-generic **error** codes.
>
I prefer that. Anyways I will check and if anything changes I will ping
back on this thread.
--
Regards,
Sudeep
next prev parent reply other threads:[~2020-05-15 9:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-14 8:24 [PATCH] firmware: arm_scmi: fix SMCCC_RET_NOT_SUPPORTED management Etienne Carriere
2020-05-14 8:24 ` Etienne Carriere
2020-05-14 14:29 ` Sudeep Holla
2020-05-14 14:29 ` Sudeep Holla
2020-05-14 15:06 ` Etienne Carriere
2020-05-14 15:06 ` Etienne Carriere
2020-05-15 9:34 ` Sudeep Holla [this message]
2020-05-15 9:34 ` Sudeep Holla
2020-05-15 9:57 ` Etienne Carriere
2020-05-15 9:57 ` Etienne Carriere
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200515093424.GC23671@bogus \
--to=sudeep.holla@arm.com \
--cc=etienne.carriere@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.