[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