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 <bige...@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(-)
applied to next
- k
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev