[PATCH] ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin instances

Simon Horman horms at verge.net.au
Wed Jan 7 16:17:31 PST 2015

On Wed, Jan 07, 2015 at 09:14:19AM +0100, Geert Uytterhoeven wrote:
> Hi Laurent,
> On Tue, Jan 6, 2015 at 3:14 PM, Laurent Pinchart
> <laurent.pinchart at ideasonboard.com> wrote:
> > On Tuesday 06 January 2015 14:39:10 Geert Uytterhoeven wrote:
> >> The sh73a0 INTC can't mask interrupts properly most likely due to a
> >> hardware bug. Set the .control_parent flag to delegate masking to the
> >> parent interrupt controller, like was already done for irqpin1.
> >>
> >> Without this, accessing the three-axis digital accelerometer ADXL345
> >> on kzm9g through /dev/input/event1 causes an interrupt storm, which
> >> requires a power-cycle to recover from.
> >>
> >> This was inspired by a patch for arch/arm/boot/dts/sh73a0.dtsi from
> >> Laurent Pinchart <laurent.pinchart+renesas at ideasonboard.com>.
> >
> > This looks correct to me, but shouldn't we concentrate on getting rid of
> > legacy code instead ?
> Sure.
> But this is a serious bug, which allows to crash the kernel from user space.
> Worse, a simple reset is not sufficient to recover. You need to power-cycle
> the board.

With that in mind I have queued this up as a fix for v3.19.

For (my) reference, 341eb5465f67437a ("ARM: shmobile: INTC External IRQ pin
driver on sh73a0"), which this patch fixes, was part of v3.9.

More information about the linux-arm-kernel mailing list