[PATCH 01/16 v2] pmac_zilog: fix unexpected irq

Alan Cox alan at lxorguk.ukuu.org.uk
Wed Dec 7 02:39:26 EST 2011


On Wed, 7 Dec 2011 02:13:41 +1100 (EST)
Finn Thain <fthain at telegraphics.com.au> wrote:

> 
> On most 68k Macs the SCC IRQ is an autovector interrupt and cannot be 
> masked. This can be a problem when pmac_zilog starts up.
> 
> For example, the serial debugging code in arch/m68k/kernel/head.S may be 
> used beforehand. It disables the SCC interrupts at the chip but doesn't 
> ack them. Then when a pmac_zilog port is opened and SCC chip interrupts 
> become enabled, the machine locks up with "unexpected interrupt" because 
> request_irq() hasn't happened yet.
> 
> Fix this by setting the interrupt enable bits only after the handler is 
> installed and before it is uninstalled. Also move this bit flipping into a 
> separate pmz_interrupt_control() routine. Replace all instances of these 
> operations with calls to this routine.
> 
> Signed-off-by: Finn Thain <fthain at telegraphics.com.au>

Nice

Acked-by: Alan Cox <alan at linux.intel.com>


More information about the Linuxppc-dev mailing list