Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
fork

Configure Feed

Select the types of activity you want to include in your feed.

irqchip: orion: Fix getting generic chip pointer.

Enabling SPARSE_IRQ shows up a bug in the irq-orion bridge interrupt
handler. The bridge interrupt is implemented using a single generic
chip. Thus the parameter passed to irq_get_domain_generic_chip()
should always be zero.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Fixes: 9dbd90f17e4f ("irqchip: Add support for Marvell Orion SoCs")
Cc: <stable@vger.kernel.org> # v3.11+
Signed-off-by: Jason Cooper <jason@lakedaemon.net>

authored by

Andrew Lunn and committed by
Jason Cooper
d86e9af6 e0318ec3

+2 -1
+2 -1
drivers/irqchip/irq-orion.c
··· 111 111 static void orion_bridge_irq_handler(unsigned int irq, struct irq_desc *desc) 112 112 { 113 113 struct irq_domain *d = irq_get_handler_data(irq); 114 - struct irq_chip_generic *gc = irq_get_domain_generic_chip(d, irq); 114 + 115 + struct irq_chip_generic *gc = irq_get_domain_generic_chip(d, 0); 115 116 u32 stat = readl_relaxed(gc->reg_base + ORION_BRIDGE_IRQ_CAUSE) & 116 117 gc->mask_cache; 117 118