[PATCH] gpio: regmap: Fix gpio_remap_register

Wentao Guan posted 1 patch 2 months, 1 week ago
drivers/gpio/gpio-regmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] gpio: regmap: Fix gpio_remap_register
Posted by Wentao Guan 2 months, 1 week ago
Because gpiochip_add_data successfully done, use
err_remove_gpiochip instead of err_free_bitmap to free
such as gdev,descs..

Fixes: 553b75d4bfe9 ("gpio: regmap: Allow to allocate regmap-irq device")
CC: stable@vger.kernel.org
Co-developed-by: WangYuli <wangyl5933@chinaunicom.cn>
Signed-off-by: WangYuli <wangyl5933@chinaunicom.cn>
Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
---
 drivers/gpio/gpio-regmap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c
index fd986afa7db5f..f0bcb2c2c6748 100644
--- a/drivers/gpio/gpio-regmap.c
+++ b/drivers/gpio/gpio-regmap.c
@@ -310,7 +310,7 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
 						 config->regmap_irq_line, config->regmap_irq_flags,
 						 0, config->regmap_irq_chip, &gpio->irq_chip_data);
 		if (ret)
-			goto err_free_bitmap;
+			goto err_remove_gpiochip;
 
 		irq_domain = regmap_irq_get_domain(gpio->irq_chip_data);
 	} else
-- 
2.20.1
Re: [PATCH] gpio: regmap: Fix gpio_remap_register
Posted by Bartosz Golaszewski 2 months ago
On Wed, Dec 3, 2025 at 3:05 AM Wentao Guan <guanwentao@uniontech.com> wrote:
>
> Because gpiochip_add_data successfully done, use
> err_remove_gpiochip instead of err_free_bitmap to free
> such as gdev,descs..
>
> Fixes: 553b75d4bfe9 ("gpio: regmap: Allow to allocate regmap-irq device")
> CC: stable@vger.kernel.org
> Co-developed-by: WangYuli <wangyl5933@chinaunicom.cn>
> Signed-off-by: WangYuli <wangyl5933@chinaunicom.cn>
> Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
> ---

Please use get_maintainers.pl - you have not put neither Linus nor I
in the Cc list.

Bart
Re: [PATCH] gpio: regmap: Fix gpio_remap_register
Posted by Andy Shevchenko 2 months ago
+Cc: Ioana

On Wed, Dec 03, 2025 at 10:03:42AM +0800, Wentao Guan wrote:
> Because gpiochip_add_data successfully done, use

gpiochip_add_data()

> err_remove_gpiochip instead of err_free_bitmap to free
> such as gdev,descs..

What does 'gdev,desc.' stand for (also notice dot at the end)?

> Fixes: 553b75d4bfe9 ("gpio: regmap: Allow to allocate regmap-irq device")

Perhaps you also want to add this
ae495810cffe ("gpio: regmap: add the .fixed_direction_output configuration parameter")

As the patch changed the logic from the original commit.

Interestingly the 3bd44edd6c55 ("gpio: regmap: fix memory leak of gpio_regmap
structure") fixed one leak and missed this one.

...

> struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config

>  						 config->regmap_irq_line, config->regmap_irq_flags,
>  						 0, config->regmap_irq_chip, &gpio->irq_chip_data);
>  		if (ret)
> -			goto err_free_bitmap;
> +			goto err_remove_gpiochip;
>  
>  		irq_domain = regmap_irq_get_domain(gpio->irq_chip_data);
>  	} else

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH] gpio: regmap: Fix gpio_remap_register
Posted by Wentao Guan 2 months ago
Hello Andy,

I noticed it in v6.6.117, i fogot rebase it in v6.19-rc1, i will send v2 soon.

PS: The fact is we need to call gpiochip_remove(chip) to free what gpiochip_add_data(chip, gpio) alloc.

BRs
Wentao Guan