Re: [PATCH] gpio: cdev: sanitize the label before requesting the interrupt

From: Kent Gibson
Date: Fri Mar 22 2024 - 07:54:32 EST


On Fri, Mar 22, 2024 at 12:31:36PM +0300, Dan Carpenter wrote:
> On Fri, Mar 22, 2024 at 08:46:50AM +0100, Bartosz Golaszewski wrote:
> > On Fri, Mar 22, 2024 at 2:30 AM Kent Gibson <warthog618@xxxxxxxxx> wrote:
> > >
> > > On Wed, Mar 20, 2024 at 01:59:44PM +0100, Bartosz Golaszewski wrote:
> > > > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>
> > > >
> > > > Let's replace all "/" with "-".
> > > >
> > >
> > > I actually prefer the ":" you originally suggested, as it more clearly
> > > indicates a tier separation, whereas a hyphen is commonly used for
> > > multi-word names. And as the hyphen is more commonly used the sanitized
> > > name is more likely to conflict.
> > >
> >
> > Sounds good, will do.
> > > >
> > > > + label = make_irq_label(le->label);
> > > > + if (!label)
> > > > + goto out_free_le;
> > > > +
> > >
> > > Need to set ret = -ENOMEM before the goto, else you will return 0.
> > >
> >
> > Eek, right, thanks.
>
> Smatch has a warning about this, btw.
> drivers/gpio/gpiolib-cdev.c:2221 lineevent_create() warn: missing error code 'ret'
>

And that triggered a "what the hell does that mean" warning in my
wetware error parser ;-).

That could be better worded - it isn't "missing", it hasn't been
appropriately set. So maybe "unset error code"?

> The other warning here is:
> drivers/gpio/gpiolib-cdev.c:2269 lineevent_create() warn: 'irq' from request_threaded_irq() not released on lines: 2258.
>

Looks like a false positive to me - as per the comment in the code, that path
(2258) results in lineevent_release() being called and that releases the irq.

Cheers,
Kent.