Messages in this thread | | | From | Peter Hilber <> | Subject | Re: [PATCH v4 01/16] firmware: arm_scmi: Fix max pending messages boundary check | Date | Thu, 1 Jul 2021 10:42:40 +0200 |
| |
Hi Cristian,
please find some remarks to the patch series in this email and the following.
On 11.06.21 18:59, Cristian Marussi wrote: > SCMI message headers carry a sequence number and such field is sized to > allow for MSG_TOKEN_MAX distinct numbers; moreover zero is not really an > acceptable maximum number of pending in-flight messages. > > Fix accordignly the checks performed on the value exported by transports > in scmi_desc.max_msg. > > Reported-by: Vincent Guittot <vincent.guittot@linaro.org> > Fixes: aa4f886f3893 ("firmware: arm_scmi: add basic driver infrastructure for SCMI") > Signed-off-by: Cristian Marussi <cristian.marussi@arm.com> > --- > drivers/firmware/arm_scmi/driver.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c > index 66e5e694be7d..6713b259f1e6 100644 > --- a/drivers/firmware/arm_scmi/driver.c > +++ b/drivers/firmware/arm_scmi/driver.c > @@ -1025,8 +1025,9 @@ static int __scmi_xfer_info_init(struct scmi_info *sinfo, > const struct scmi_desc *desc = sinfo->desc; > > /* Pre-allocated messages, no more than what hdr.seq can support */ > - if (WARN_ON(desc->max_msg >= MSG_TOKEN_MAX)) { > - dev_err(dev, "Maximum message of %d exceeds supported %ld\n", > + if (WARN_ON(!desc->max_msg || desc->max_msg > MSG_TOKEN_MAX)) { > + dev_err(dev, > + "Invalid max_msg %d. Maximum messages supported %ld.\n",
%ld -> %lu
> desc->max_msg, MSG_TOKEN_MAX); > return -EINVAL; > } >
| |