[PATCH] powerpc/ipic: unmask all interrupt sources

Kumar Gala galak at kernel.crashing.org
Thu Aug 6 06:04:16 EST 2009


On Aug 5, 2009, at 2:41 PM, Sebastian Andrzej Siewior wrote:

> in case the interrupt controller was used in an earlier life then it  
> is
> possible it is that some of its sources were used and are still  
> unmask.
> If the (unmasked) device is active and is creating interrupts (or one
> interrupts was pending since the interrupts were disabled) then the  
> boot
> process "ends" very soon. Once external interrupts are enabled, we  
> land in
> -> do_IRQ
>  -> call ppc_md.get_irq()
>     -> ipic_read() gets the source number
>     -> irq_linear_revmap(source)
>        -> revmap[source] == NO_IRQ
>           -> irq_find_mapping(source) returns NO_IRQ because no source
>              is registered
>  -> source is NO_IRQ, ppc_spurious_interrupts gets incremented, no
>     further action.
>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
> ---
> This solves my kexec problem I had earlier. I could disable the device
> in ->shutdown path but the device in question could been used in the
> boot loader. Usually one gets the "nobody cared" message for unhandled
> interrupts but in this (rare) case nothing happens and box stands  
> still.
>
> arch/powerpc/sysdev/ipic.c |    3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)

looks good.. I'll pick this up for .32 since it doesn't seem to be a  
bug until we have kexec.

- k


More information about the Linuxppc-dev mailing list