[PATCH] gpio: sysfs: fix inverted pointer logic

Bartosz Golaszewski posted 1 patch 1 year, 11 months ago
drivers/gpio/gpiolib-sysfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] gpio: sysfs: fix inverted pointer logic
Posted by Bartosz Golaszewski 1 year, 11 months ago
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

The logic is inverted, we want to return if the chip *IS* NULL.

Fixes: d83cee3d2bb1 ("gpio: protect the pointer to gpio_chip in gpio_device with SRCU")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/linux-gpio/15671341-0b29-40e0-b487-0a4cdc414d8e@moroto.mountain/
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/gpio/gpiolib-sysfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c
index 6285fa5afbb1..e4a6df2b317d 100644
--- a/drivers/gpio/gpiolib-sysfs.c
+++ b/drivers/gpio/gpiolib-sysfs.c
@@ -801,7 +801,7 @@ void gpiochip_sysfs_unregister(struct gpio_device *gdev)
 	guard(srcu)(&gdev->srcu);
 
 	chip = rcu_dereference(gdev->chip);
-	if (chip)
+	if (!chip)
 		return;
 
 	/* unregister gpiod class devices owned by sysfs */
-- 
2.40.1
Re: [PATCH] gpio: sysfs: fix inverted pointer logic
Posted by Bartosz Golaszewski 1 year, 11 months ago
On Wed, Feb 14, 2024 at 9:52 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> The logic is inverted, we want to return if the chip *IS* NULL.
>
> Fixes: d83cee3d2bb1 ("gpio: protect the pointer to gpio_chip in gpio_device with SRCU")
> Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> Closes: https://lore.kernel.org/linux-gpio/15671341-0b29-40e0-b487-0a4cdc414d8e@moroto.mountain/
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
>  drivers/gpio/gpiolib-sysfs.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpiolib-sysfs.c b/drivers/gpio/gpiolib-sysfs.c
> index 6285fa5afbb1..e4a6df2b317d 100644
> --- a/drivers/gpio/gpiolib-sysfs.c
> +++ b/drivers/gpio/gpiolib-sysfs.c
> @@ -801,7 +801,7 @@ void gpiochip_sysfs_unregister(struct gpio_device *gdev)
>         guard(srcu)(&gdev->srcu);
>
>         chip = rcu_dereference(gdev->chip);
> -       if (chip)
> +       if (!chip)
>                 return;
>
>         /* unregister gpiod class devices owned by sysfs */
> --
> 2.40.1
>

Patch applied.

Bart
Re: [PATCH] gpio: sysfs: fix inverted pointer logic
Posted by Andy Shevchenko 1 year, 11 months ago
On Wed, Feb 14, 2024 at 09:52:48AM +0100, Bartosz Golaszewski wrote:

...

> Fixes: d83cee3d2bb1 ("gpio: protect the pointer to gpio_chip in gpio_device with SRCU")

I'm wondering if instead tons of fixes you can just fold the patches and rebase your tree.

Yes, we still have time to let it soak in Linux Next, so Torvalds won't complain.
It will be much less burden to anybody who wants to backport this nice work.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH] gpio: sysfs: fix inverted pointer logic
Posted by Bartosz Golaszewski 1 year, 11 months ago
On Wed, Feb 14, 2024 at 1:52 PM Andy Shevchenko
<andriy.shevchenko@linux.intel.com> wrote:
>
> On Wed, Feb 14, 2024 at 09:52:48AM +0100, Bartosz Golaszewski wrote:
>
> ...
>
> > Fixes: d83cee3d2bb1 ("gpio: protect the pointer to gpio_chip in gpio_device with SRCU")
>
> I'm wondering if instead tons of fixes you can just fold the patches and rebase your tree.
>
> Yes, we still have time to let it soak in Linux Next, so Torvalds won't complain.
> It will be much less burden to anybody who wants to backport this nice work.
>

No, I don't think so. Rebasing is reserved for really special cases
when nothing else can be done. Fixes like that should be expected for
a big rework like this. This is honestly a strange idea.

And I don't think anyone should backport this work. It's simply way
too big and touches too many places.

Bart