From bfa917516cfc33860ee23925b29ae48549bf01db Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Fri, 30 Jun 2023 12:38:04 +0000 Subject: [PATCH] Revert "gpiolib: Fix irq_domain resource tracking for gpiochip_irqchip_add_domain()" This reverts commit 0357259cb103f1e48b4372bab50be45f2591c49f which is commit ff7a1790fbf92f1bdd0966d3f0da3ea808ede876 upstream. It breaks the Android abi, so revert it for now. If it needs to come back, it can be done so in an abi-safe way. Bug: 161946584 Change-Id: I2147b1495cfc1f7e8758b9c58a24f080be2bec3c Signed-off-by: Greg Kroah-Hartman --- drivers/gpio/gpiolib.c | 3 +-- include/linux/gpio/driver.h | 8 -------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 6d3e3454a6ed..f2cb07093185 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -1650,7 +1650,7 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gc) } /* Remove all IRQ mappings and delete the domain */ - if (!gc->irq.domain_is_allocated_externally && gc->irq.domain) { + if (gc->irq.domain) { unsigned int irq; for (offset = 0; offset < gc->ngpio; offset++) { @@ -1696,7 +1696,6 @@ int gpiochip_irqchip_add_domain(struct gpio_chip *gc, gc->to_irq = gpiochip_to_irq; gc->irq.domain = domain; - gc->irq.domain_is_allocated_externally = true; /* * Using barrier() here to prevent compiler from reordering diff --git a/include/linux/gpio/driver.h b/include/linux/gpio/driver.h index 753983d0433b..0e80f35abc32 100644 --- a/include/linux/gpio/driver.h +++ b/include/linux/gpio/driver.h @@ -245,14 +245,6 @@ struct gpio_irq_chip { */ bool initialized; - /** - * @domain_is_allocated_externally: - * - * True it the irq_domain was allocated outside of gpiolib, in which - * case gpiolib won't free the irq_domain itself. - */ - bool domain_is_allocated_externally; - /** * @init_hw: optional routine to initialize hardware before * an IRQ chip will be added. This is quite useful when