pinctrl: don't put the reference to GPIO device in pinctrl_pins_show()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 23 Feb 2024 12:32:14 +0000 (13:32 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 29 Feb 2024 13:36:40 +0000 (14:36 +0100)
The call to gpiod_to_gpio_device() does not increase the reference count
of the GPIO device struct so it must not be decreased. Remove the buggy
__free() decorator.

Fixes: 524fc108b895 ("pinctrl: stop using gpiod_to_chip()")
Reported-by: David Arcari <darcari@redhat.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/r/20240223123214.288181-1-brgl@bgdev.pl
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/core.c

index ee56856cb80c33e4733f2b7f2a43fb681c89fc61..bbcdece83bf422948983a814b7a6221b79cad6a3 100644 (file)
@@ -1644,7 +1644,7 @@ static int pinctrl_pins_show(struct seq_file *s, void *what)
        const struct pinctrl_ops *ops = pctldev->desc->pctlops;
        unsigned int i, pin;
 #ifdef CONFIG_GPIOLIB
-       struct gpio_device *gdev __free(gpio_device_put) = NULL;
+       struct gpio_device *gdev = NULL;
        struct pinctrl_gpio_range *range;
        int gpio_num;
 #endif