Re: [PATCH 02/23] gpiolib: cdev: Fix resource leaks on errors in gpiolib_cdev_register()
From: Tzung-Bi Shih
Date: Tue Jan 20 2026 - 04:34:39 EST
On Tue, Jan 20, 2026 at 09:50:42AM +0100, Bartosz Golaszewski wrote:
> On Fri, Jan 16, 2026 at 9:11 AM Tzung-Bi Shih <tzungbi@xxxxxxxxxx> wrote:
> >
> > On error handling paths, gpiolib_cdev_register() doesn't free the
> > allocated resources which results leaks. Fix it.
> >
> > Cc: stable@xxxxxxxxxxxxxxx
> > Fixes: 7b9b77a8bba9 ("gpiolib: add a per-gpio_device line state notification workqueue")
> > Fixes: d83cee3d2bb1 ("gpio: protect the pointer to gpio_chip in gpio_device with SRCU")
> > Signed-off-by: Tzung-Bi Shih <tzungbi@xxxxxxxxxx>
> > ---
> > drivers/gpio/gpiolib-cdev.c | 13 ++++++++++---
> > 1 file changed, 10 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/gpio/gpiolib-cdev.c b/drivers/gpio/gpiolib-cdev.c
> > index 3735c9fe1502..ba1eae15852d 100644
> > --- a/drivers/gpio/gpiolib-cdev.c
> > +++ b/drivers/gpio/gpiolib-cdev.c
> > @@ -2797,16 +2797,23 @@ int gpiolib_cdev_register(struct gpio_device *gdev, dev_t devt)
> >
> > ret = cdev_device_add(&gdev->chrdev, &gdev->dev);
> > if (ret)
> > - return ret;
> > + goto err_free_workqueue;
> >
>
> I need to drop this because it jumps over the guard(). I think you'll
> have to free the workqueue locally here instead.
>
> Can you send a separate v2?
v2: https://lore.kernel.org/linux-gpio/20260120092650.2305319-1-tzungbi@xxxxxxxxxx/
Heads up: I'll respin the whole series for targeting v7.0-rc1 for:
- Rebase after you applied some of the patches.
- I found you prefer "gpio" to "gpiolib" in the title prefix.
- I found yet another build warning when testing with
https://lore.kernel.org/linux-gpio/202601200022.ZFwz8K6u-lkp@xxxxxxxxx/