Re: [PATCH] firmware: arm_scmi: Make scmi core independent of transport type

Viresh Kumar
2020-01-09T09:16:19Z

On 09-01-20, 09:18, Arnd Bergmann wrote:
> > +static int mailbox_chan_free(int id, void *p, void *data)
> > +{
> > + struct scmi_chan_info *cinfo = p;
> > + struct scmi_mailbox *smbox = cinfo->transport_info;
> > +
> > + if (!IS_ERR_OR_NULL(smbox->chan)) {
> > + mbox_free_channel(smbox->chan);
> > + cinfo->transport_info = NULL;
> > + smbox->chan = NULL;
> > + smbox->cinfo = NULL;
> > + }
>
> There is something wrong if smbox->chan can be be one of
> three things (a valid pointer, a NULL pointer, or an error value).
>
> I see this is a preexisting problem, but please add a patch to
> make it consistently use either NULL pointers or error codes
> and remove all instances of IS_ERR_OR_NULL() from this
> subsystem.

This isn't a subsystem problem actually. mbox_request_channel() never
returns NULL on error.

@Sudeep, do we really need the IS_ERR_OR_NULL() check in
scmi_mbox_free_channel() helper ? Or can it just be IS_ERR() ?

--
viresh