All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] gpiolib: irqchip: use irq_find_mapping while removing irqchip
@ 2014-09-25 16:09 Grygorii Strashko
  2014-09-25 16:09 ` [RFC/RFT PATCH 2/2] gpiolib: irqchip: get rid of irq_base Grygorii Strashko
  2014-09-26  8:40 ` [PATCH 1/2] gpiolib: irqchip: use irq_find_mapping while removing irqchip Linus Walleij
  0 siblings, 2 replies; 6+ messages in thread
From: Grygorii Strashko @ 2014-09-25 16:09 UTC (permalink / raw)
  To: Linus Walleij
  Cc: Alexandre Courbot, Yalin.Wang, linux-gpio, Grygorii Strashko

There is no guarantee that VIRQs will be allocated sequentially
for gpio irqchip in gpiochip_irqchip_add().
Therefore, it's unsafe to dispose VIRQ in gpiochip_irqchip_remove()
basing on index relatively to stored irq_base value.

Hence, use irq_find_mapping for VIRQ finding  in gpiochip_irqchip_remove()
instead of irq_base + index.

Reported-by: Wang, Yalin <Yalin.Wang@sonymobile.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
---
 drivers/gpio/gpiolib.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 15cc0bb..f6bf368 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -524,7 +524,8 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip)
 	/* Remove all IRQ mappings and delete the domain */
 	if (gpiochip->irqdomain) {
 		for (offset = 0; offset < gpiochip->ngpio; offset++)
-			irq_dispose_mapping(gpiochip->irq_base + offset);
+			irq_dispose_mapping(
+				irq_find_mapping(gpiochip->irqdomain, offset));
 		irq_domain_remove(gpiochip->irqdomain);
 	}
 
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-09-26 12:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-25 16:09 [PATCH 1/2] gpiolib: irqchip: use irq_find_mapping while removing irqchip Grygorii Strashko
2014-09-25 16:09 ` [RFC/RFT PATCH 2/2] gpiolib: irqchip: get rid of irq_base Grygorii Strashko
2014-09-26  8:44   ` Linus Walleij
2014-09-26 10:44     ` Grygorii Strashko
2014-09-26 12:33       ` Linus Walleij
2014-09-26  8:40 ` [PATCH 1/2] gpiolib: irqchip: use irq_find_mapping while removing irqchip Linus Walleij

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.