On Tue, Jan 27, 2026 at 10:18:38AM +0800, Xingjing Deng wrote:
> I identified this issue through static program analysis. All other
> callers of this function validate its return value, so I believe a
> validation check should also be added here.
> 

I agree with your findings.

Please drop the dev_err() and mention that you found this through static
analysis in the commit message.

Thank you,
Bjorn

> Bjorn Andersson <[email protected]> 于2026年1月27日周二 04:53写道:
> >
> > On Mon, Jan 26, 2026 at 04:24:55PM +0100, Greg KH wrote:
> > > On Sat, Jan 17, 2026 at 10:03:51PM +0800, Xingjing Deng wrote:
> > > > In the SDSP probe path, qcom_scm_assign_mem() is used to assign the
> > > > reserved memory to the configured VMIDs, but its return value was not
> > > > checked.
> > > >
> > > > Fail the probe if the SCM call fails to avoid continuing with an
> > > > unexpected/incorrect memory permission configuration.
> > > >
> > > > The file has passed the check of checkpatch.
> > > >
> > > > Fixes: c3c0363bc72d4 ("misc: fastrpc: support complete DMA pool access 
> > > > to the DSP")
> > > > Cc: [email protected] # 6.11-rc1
> > > > Signed-off-by: Xingjing Deng <[email protected]>
> > > > ---
> > > > v5:
> > > > - Squash the functional change and indentation fix into a single patch.
> > > > - Link to v4: 
> > > > https://lore.kernel.org/linux-arm-msm/2026011637-statute-showy-2c3f@gregkh/T/#t
> > > >
> > > > v4:
> > > > - Format the indentation
> > > > - Link to v3: 
> > > > https://lore.kernel.org/linux-arm-msm/[email protected]/T/#t
> > > >
> > > > v3:
> > > > - Add missing [email protected] to cc list.
> > > > - Standarlize changelog placement/format.
> > > > - Link to v2: 
> > > > https://lore.kernel.org/linux-arm-msm/[email protected]/T/#t
> > > >
> > > > v2:
> > > > - Add Fixes: and Cc: stable tags.
> > > > - Link to v1: 
> > > > https://lore.kernel.org/linux-arm-msm/[email protected]/T/#u
> > > > ---
> > > >  drivers/misc/fastrpc.c | 9 +++++++--
> > > >  1 file changed, 7 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
> > > > index fb3b54e05928..d9650efa443f 100644
> > > > --- a/drivers/misc/fastrpc.c
> > > > +++ b/drivers/misc/fastrpc.c
> > > > @@ -2338,8 +2338,13 @@ static int fastrpc_rpmsg_probe(struct 
> > > > rpmsg_device *rpdev)
> > > >             if (!err) {
> > > >                     src_perms = BIT(QCOM_SCM_VMID_HLOS);
> > > >
> > > > -                   qcom_scm_assign_mem(res.start, resource_size(&res), 
> > > > &src_perms,
> > > > -                               data->vmperms, data->vmcount);
> > > > +                   err = qcom_scm_assign_mem(res.start, 
> > > > resource_size(&res), &src_perms,
> > > > +                                   data->vmperms, data->vmcount);
> > > > +                   if (err) {
> > > > +                           dev_err(rdev, "Failed to assign memory phys 
> > > > 0x%llx size 0x%llx err %d",
> > > > +                               res.start, resource_size(&res), err);
> > >
> > > Shouldn't the caller function report the error?
> > >
> >
> > That is correct, all codepaths through qcom_scm_assign_mem() will either
> > be -ENOMEM or print an error message, so we shouldn't print yet another
> > message in the log here.
> >
> > (The usefulness of the error message in qcom_scm_assign_mem() could
> > certainly be improved, but that's a separate matter/patch).
> >
> > > How as this found and tested?
> > >
> >
> > Looking forward to Xingjing's answer here.
> >
> > But failing to handle errors here means that we're ignoring the failure
> > to map memory to the DSP, which will fail us later. So, that part is
> > correct. Exiting through err_free_data looks good as well.
> >
> > Regards,
> > Bjorn
> >
> > > thanks,
> > >
> > > greg k-h
> > >

Reply via email to