]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commit
powerpc/xics: EOI unmapped irqs after disabling them
authorMilton Miller <miltonm@bga.com>
Fri, 10 Oct 2008 01:56:23 +0000 (01:56 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Sun, 12 Oct 2008 23:55:47 +0000 (10:55 +1100)
commit8767e9badca7cdf0adc2564d7524092d47ababf3
treec293dc4e096384386a14619e8cb7cab3eea3c1f3
parentbb3d55e2505d8de15b132a3f6a1d596c1e2a13ee
powerpc/xics: EOI unmapped irqs after disabling them

When reciving an irq vector that does not have a linux mapping, the kernel
prints a message and calls RTAS to disable the irq source.   Previously
the kernel did not EOI the interrupt, causing the source to think it is
still being processed by software.  While this does add an additional
layer of protection against interrupt storms had RTAS failed to disable
the source, it also prevents the interrupt from working when a driver
later enables it.  (We could alternatively send an EOI on startup, but
that strategy would likely fail on an emulated xics.)

All interrupts should be disabled when the kernel starts, but this can
be observed if a driver does not shutdown an interrupt in its reboot
hook before starting a new kernel with kexec.

Michael reports this can be reproduced trivially by banging the keyboard
while kexec'ing on a P5 LPAR: even though the hvc_console driver request's
the console irq later in boot, the console is non-functional because
we're receiving no console interrupts.

Reported-By: Michael Ellerman
Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/platforms/pseries/xics.c