pinctrl: armada-37xx: Fix spurious irq management
Subsystems (4)
Gregory CLEMENT
maintainerPATCH 1/1 pinctrl: armada-37xx: Fix spurious irq management
From: Terry Zhou <[email protected]>
Until now, if we found spurious irq in irq_handler, we only updated the status in register but not the status in the code. Due to this the system will got stuck dues to the infinite loop
[gregory.clement at bootlin.com: update comment and add fix and stable tags]
Fixes 30ac0d3b0702 ("pinctrl: armada-37xx: Add edge both type gpio irq support")
Cc <[email protected]>
Signed-off-by Terry Zhou <[email protected]>
Reviewed-by Gregory CLEMENT <[email protected]>
Signed-off-by Gregory CLEMENT <[email protected]>
--- drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c +2 -1
@@ -679,12 +679,13 @@ static void armada_37xx_irq_handler(struct irq_desc *desc)writel (1 << hwirq, info->base +IRQ_STATUS +4 * i); -continue ; + goto update_status; } }generic_handle_irq (virq); +update_status:/* Update status in case a new IRQ appears */ spin_lock_irqsave (&info->irq_lock, flags); status = readl_relaxed(info->base +
Signature · 1 line
2.17.0
Quoted 6 lines · Gregory CLEMENT
From: Terry Zhou <[email protected]>
Until now, if we found spurious irq in
irq_handler, we only updated the status in register but not the status in the code. Due to this the system will got stuck dues to the infinite loop
Quoted 6 lines
[gregory.clement at bootlin.com: update comment and add fix and stable tags]Fixes 30ac0d3b0702 ("pinctrl: armada-37xx: Add edge both type gpio irq support")Cc <[email protected]>Signed-off-by Terry Zhou <[email protected]>Reviewed-by Gregory CLEMENT <[email protected]>Signed-off-by Gregory CLEMENT <[email protected]>
Patch applied.
Yours,
Linus Walleij