Thread (49 messages) 49 messages, 7 authors, 2026-01-27

Re: [PATCH 02/23] gpiolib: cdev: Fix resource leaks on errors in gpiolib_cdev_register()

From: Bartosz Golaszewski <brgl@kernel.org>
Date: 2026-01-20 09:39:35
Also in: chrome-platform, linux-gpio, linux-kselftest, lkml, stable

On Tue, Jan 20, 2026 at 10:34 AM Tzung-Bi Shih [off-list ref] wrote:
On Tue, Jan 20, 2026 at 09:50:42AM +0100, Bartosz Golaszewski wrote:
quoted
On Fri, Jan 16, 2026 at 9:11 AM Tzung-Bi Shih [off-list ref] wrote:
quoted
On error handling paths, gpiolib_cdev_register() doesn't free the
allocated resources which results leaks.  Fix it.

Cc: stable@vger.kernel.org
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@kernel.org>
---
 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@kernel.org/ (local)

Heads up: I'll respin the whole series for targeting v7.0-rc1 for:
- Rebase after you applied some of the patches.
I guess this concerns the device_initialize() rework? Yeah v7.0-rc1 is
good timing.
- I found you prefer "gpio" to "gpiolib" in the title prefix.
Just makes the line shorter.
- I found yet another build warning when testing with
  https://lore.kernel.org/linux-gpio/202601200022.ZFwz8K6u-lkp@intel.com/ (local)
Yeah, this is the one I referred to in my previous email, just forgot
to link it.

Bart
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help