Skip to content

Commit 702d1e8

Browse files
mvbjzhoulinusw
authored andcommitted
pinctrl: armada-37xx: Fix spurious irq management
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 [[email protected]: update comment and add fix and stable tags] Fixes: 30ac0d3 ("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]> Signed-off-by: Linus Walleij <[email protected]>
1 parent 973c171 commit 702d1e8

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/pinctrl/mvebu/pinctrl-armada-37xx.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -666,12 +666,13 @@ static void armada_37xx_irq_handler(struct irq_desc *desc)
666666
writel(1 << hwirq,
667667
info->base +
668668
IRQ_STATUS + 4 * i);
669-
continue;
669+
goto update_status;
670670
}
671671
}
672672

673673
generic_handle_irq(virq);
674674

675+
update_status:
675676
/* Update status in case a new IRQ appears */
676677
spin_lock_irqsave(&info->irq_lock, flags);
677678
status = readl_relaxed(info->base +

0 commit comments

Comments
 (0)