All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael Walle" <mwalle@kernel.org>
To: <longzhao@ambarella.com>, "Bartosz Golaszewski" <brgl@kernel.org>,
	<linux-gpio@vger.kernel.org>
Cc: "Linus Walleij" <linusw@kernel.org>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski@oss.qualcomm.com>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Mika Westerberg" <westeri@kernel.org>,
	<linux-acpi@vger.kernel.org>, <devicetree@vger.kernel.org>,
	"Long Zhao" <zl020895@163.com>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v13 08/13] gpio: regmap: remove gpiochip before tearing down irqchip
Date: Mon, 02 Nov 2026 09:33:20 +0100	[thread overview]
Message-ID: <DMKL43ZCOSQ3.3TAJL8BRQ6ZTH@kernel.org> (raw)
In-Reply-To: <20261102-cv75-gpio-v13-8-4f93114ea204@ambarella.com>

[-- Attachment #1: Type: text/plain, Size: 2207 bytes --]

On Mon Nov 2, 2026 at 7:46 AM CET, Long Zhao via B4 Relay wrote:
> From: Long Zhao <longzhao@ambarella.com>
>
> gpio_regmap_unregister() currently calls regmap_del_irq_chip() before
> gpiochip_remove(). That disposes the mapped virtual IRQs and frees the
> irq_domain while ACPI GPIO-signaled events may still be requested and
> while gpiod_free_irqs() still needs gc->irq.domain.

Maybe Andy have an opinion here. But that deviated from the usual
cleanup in the reverse order and at least deserves a comment in the
code.

> Remove the gpio_chip first so ACPI teardown and USED_AS_IRQ cleanup run
> against a live domain, then delete the regmap irqchip. Use the same
> order on the registration error path, which previously leaked the
> irqchip when gpiochip_irqchip_add_domain() failed after
> regmap_add_irq_chip_fwnode().

This should be split into a seperate patch with a Fixes: tag.

-michael

>
> Cc: Michael Walle <mwalle@kernel.org>
> Signed-off-by: Long Zhao <longzhao@ambarella.com>
> ---
>  drivers/gpio/gpio-regmap.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpio-regmap.c b/drivers/gpio/gpio-regmap.c
> index 0a44deae3d01..6b520bd80834 100644
> --- a/drivers/gpio/gpio-regmap.c
> +++ b/drivers/gpio/gpio-regmap.c
> @@ -429,6 +429,11 @@ struct gpio_regmap *gpio_regmap_register(const struct gpio_regmap_config *config
>  
>  err_remove_gpiochip:
>  	gpiochip_remove(chip);
> +
> +#ifdef CONFIG_REGMAP_IRQ
> +	if (gpio->irq_chip_data)
> +		regmap_del_irq_chip(gpio->regmap_irq_line, gpio->irq_chip_data);
> +#endif
>  err_free_bitmap_output:
>  	bitmap_free(gpio->fixed_direction_output);
>  err_free_bitmap_dirmask:
> @@ -445,12 +450,13 @@ EXPORT_SYMBOL_GPL(gpio_regmap_register);
>   */
>  void gpio_regmap_unregister(struct gpio_regmap *gpio)
>  {
> +	gpiochip_remove(&gpio->gpio_chip);
> +
>  #ifdef CONFIG_REGMAP_IRQ
>  	if (gpio->irq_chip_data)
>  		regmap_del_irq_chip(gpio->regmap_irq_line, gpio->irq_chip_data);
>  #endif
>  
> -	gpiochip_remove(&gpio->gpio_chip);
>  	bitmap_free(gpio->fixed_direction_output);
>  	bitmap_free(gpio->fixed_direction_mask);
>  	kfree(gpio);


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 297 bytes --]

  reply	other threads:[~2026-11-02  8:33 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-02  6:45 [PATCH v13 00/13] gpio: add Ambarella CV75 PL061 support Long Zhao via B4 Relay
2026-11-02  6:45 ` Long Zhao
2026-11-02  6:45 ` [PATCH v13 01/13] dt-bindings: gpio: pl061: add Ambarella CV75 variant Long Zhao via B4 Relay
2026-11-02  6:45   ` Long Zhao
2026-11-02  6:57   ` sashiko-bot
2026-11-02  6:45 ` [PATCH v13 02/13] gpiolib: regmap: add GPIO_REGMAP_QUIRK_SET_AFTER_DIR Long Zhao via B4 Relay
2026-11-02  6:45   ` Long Zhao
2026-11-02  7:01   ` sashiko-bot
2026-11-02  8:35   ` Michael Walle
2026-11-02  6:45 ` [PATCH v13 03/13] gpio: pl061: drop redundant pending check in the IRQ handler Long Zhao via B4 Relay
2026-11-02  6:45   ` Long Zhao
2026-11-02  6:45 ` [PATCH v13 04/13] gpio: pl061: convert register access to regmap Long Zhao via B4 Relay
2026-11-02  6:45   ` Long Zhao
2026-11-02  6:45 ` [PATCH v13 05/13] gpio: pl061: use IRQ_TYPE_LEVEL_MASK and IRQ_TYPE_EDGE_BOTH Long Zhao via B4 Relay
2026-11-02  6:45   ` Long Zhao
2026-11-02  6:45 ` [PATCH v13 06/13] gpio: pl061: use cleanup helpers for locks Long Zhao via B4 Relay
2026-11-02  6:45   ` Long Zhao
2026-11-02  6:46 ` [PATCH v13 07/13] gpio: pl061: keep the parent device in a local Long Zhao via B4 Relay
2026-11-02  6:46   ` Long Zhao
2026-11-02  6:46 ` [PATCH v13 08/13] gpio: regmap: remove gpiochip before tearing down irqchip Long Zhao via B4 Relay
2026-11-02  6:46   ` Long Zhao
2026-11-02  8:33   ` Michael Walle [this message]
2026-11-03 17:50     ` Andy Shevchenko
2026-11-04  5:00       ` zl020895
2026-11-04 14:12       ` Bartosz Golaszewski
2026-11-03 17:46   ` Andy Shevchenko
2026-11-02  6:46 ` [PATCH v13 09/13] gpiolib: request ACPI GPIO events for external IRQ domains Long Zhao via B4 Relay
2026-11-02  6:46   ` Long Zhao
2026-11-03 11:58   ` Andy Shevchenko
2026-11-04  4:52     ` zl020895
2026-11-02  6:46 ` [PATCH v13 10/13] gpio: pl061: switch data path to gpio-regmap Long Zhao via B4 Relay
2026-11-02  6:46   ` Long Zhao
2026-11-02  7:10   ` sashiko-bot
2026-11-02  6:46 ` [PATCH v13 11/13] gpio: pl061: add Ambarella register-layout variant Long Zhao via B4 Relay
2026-11-02  6:46   ` Long Zhao
2026-11-02  6:46 ` [PATCH v13 12/13] gpio: pl061: tidy up IRQ trigger logging Long Zhao via B4 Relay
2026-11-02  6:46   ` Long Zhao
2026-11-03 16:53   ` Andy Shevchenko
2026-11-02  6:46 ` [PATCH v13 13/13] gpio: pl061: use string_choices helpers for " Long Zhao via B4 Relay
2026-11-02  6:46   ` Long Zhao
2026-11-03 16:54   ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DMKL43ZCOSQ3.3TAJL8BRQ6ZTH@kernel.org \
    --to=mwalle@kernel.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=brgl@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=krzysztof.kozlowski@oss.qualcomm.com \
    --cc=linusw@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longzhao@ambarella.com \
    --cc=robh@kernel.org \
    --cc=westeri@kernel.org \
    --cc=zl020895@163.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.