diff mbox series

Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"

Message ID 20220315165205.1502325-1-brgl@bgdev.pl
State Accepted
Commit 56e337f2cf1326323844927a04e9dbce9a244835
Headers show
Series Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)" | expand

Commit Message

Bartosz Golaszewski March 15, 2022, 4:52 p.m. UTC
This reverts commit fc328a7d1fcce263db0b046917a66f3aa6e68719.

This commit - while attempting to fix a regression - has caused a number
of other problems. As the fallout from it is more significant than the
initial problem itself, revert it for now before we find a correct
solution.

Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
---
 drivers/gpio/gpiolib.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Linus Torvalds March 15, 2022, 4:53 p.m. UTC | #1
On Tue, Mar 15, 2022 at 9:52 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> This commit - while attempting to fix a regression - has caused a number
> of other problems. As the fallout from it is more significant than the
> initial problem itself, revert it for now before we find a correct
> solution.

I'll add the links and the cc's to this and apply it.

                Linus
Linux regression tracking (Thorsten Leemhuis) May 4, 2022, 1:34 p.m. UTC | #2
On 15.03.22 17:52, Bartosz Golaszewski wrote:
> This reverts commit fc328a7d1fcce263db0b046917a66f3aa6e68719.
> 
> This commit - while attempting to fix a regression - has caused a number
> of other problems. As the fallout from it is more significant than the
> initial problem itself, revert it for now before we find a correct
> solution.

I just noticed that the regression that fc328a7d1fcc was trying to fix
is still on my list of tracked regressions. Is anyone working on it od
did it fall through the cracks? Was it maybe even fixed already? Or are
matters now that complicated that it's best to just leave everything as
it is now?

Ciao, Thorsten

#regzbot ^backmonitor:
https://lore.kernel.org/stable/20211217153555.9413-1-marcelo.jimenez@gmail.com/

> Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
> ---
>  drivers/gpio/gpiolib.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
> index defb7c464b87..6630d92e30ad 100644
> --- a/drivers/gpio/gpiolib.c
> +++ b/drivers/gpio/gpiolib.c
> @@ -1701,6 +1701,11 @@ static inline void gpiochip_irqchip_free_valid_mask(struct gpio_chip *gc)
>   */
>  int gpiochip_generic_request(struct gpio_chip *gc, unsigned int offset)
>  {
> +#ifdef CONFIG_PINCTRL
> +	if (list_empty(&gc->gpiodev->pin_ranges))
> +		return 0;
> +#endif
> +
>  	return pinctrl_gpio_request(gc->gpiodev->base + offset);
>  }
>  EXPORT_SYMBOL_GPL(gpiochip_generic_request);
> @@ -1712,6 +1717,11 @@ EXPORT_SYMBOL_GPL(gpiochip_generic_request);
>   */
>  void gpiochip_generic_free(struct gpio_chip *gc, unsigned int offset)
>  {
> +#ifdef CONFIG_PINCTRL
> +	if (list_empty(&gc->gpiodev->pin_ranges))
> +		return;
> +#endif
> +
>  	pinctrl_gpio_free(gc->gpiodev->base + offset);
>  }
>  EXPORT_SYMBOL_GPL(gpiochip_generic_free);
diff mbox series

Patch

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index defb7c464b87..6630d92e30ad 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -1701,6 +1701,11 @@  static inline void gpiochip_irqchip_free_valid_mask(struct gpio_chip *gc)
  */
 int gpiochip_generic_request(struct gpio_chip *gc, unsigned int offset)
 {
+#ifdef CONFIG_PINCTRL
+	if (list_empty(&gc->gpiodev->pin_ranges))
+		return 0;
+#endif
+
 	return pinctrl_gpio_request(gc->gpiodev->base + offset);
 }
 EXPORT_SYMBOL_GPL(gpiochip_generic_request);
@@ -1712,6 +1717,11 @@  EXPORT_SYMBOL_GPL(gpiochip_generic_request);
  */
 void gpiochip_generic_free(struct gpio_chip *gc, unsigned int offset)
 {
+#ifdef CONFIG_PINCTRL
+	if (list_empty(&gc->gpiodev->pin_ranges))
+		return;
+#endif
+
 	pinctrl_gpio_free(gc->gpiodev->base + offset);
 }
 EXPORT_SYMBOL_GPL(gpiochip_generic_free);