diff mbox series

pinctrl: don't put the reference to GPIO device in pinctrl_pins_show()

Message ID 20240223123028.288038-1-brgl@bgdev.pl
State New
Headers show
Series pinctrl: don't put the reference to GPIO device in pinctrl_pins_show() | expand

Commit Message

Bartosz Golaszewski Feb. 23, 2024, 12:30 p.m. UTC
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

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.

Reported-by: David Arcari <darcari@redhat.com>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/pinctrl/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Bartosz Golaszewski Feb. 23, 2024, 12:34 p.m. UTC | #1
On Fri, Feb 23, 2024 at 1:30 PM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> 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.
>
> Reported-by: David Arcari <darcari@redhat.com>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
>  drivers/pinctrl/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
> index ee56856cb80c..bbcdece83bf4 100644
> --- a/drivers/pinctrl/core.c
> +++ b/drivers/pinctrl/core.c
> @@ -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
> --
> 2.40.1
>

Linus,

Disregard this one, it had no Fixes tag but I didn't press Ctrl-c in time.

Bart
diff mbox series

Patch

diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index ee56856cb80c..bbcdece83bf4 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -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