powerpc/cell: Use common smp ipi actions
authorMilton Miller <miltonm@bga.com>
Tue, 24 May 2011 20:34:18 +0000 (20:34 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 26 May 2011 03:38:58 +0000 (13:38 +1000)
commit7ef71d753ea0286bfeb4251b9ba592716ebdd9e8
tree60b9cbc4ab3a6d1e60d5170debdc8ee1575e6310
parentce2a40458ebf9c2e47fa0806fec31f845bfcb9d5
powerpc/cell: Use common smp ipi actions

The cell iic interrupt controller has enough software caused interrupts
to use a unique interrupt for each of the 4 messages powerpc uses.
This means each interrupt gets its own irq action/data combination.

Use the seperate, optimized, arch common ipi action functions
registered via the helper smp_request_message_ipi instead passing the
message as action data to a single action that then demultipexes to
the required acton via a switch statement.

smp_request_message_ipi will register the action as IRQF_PER_CPU
and IRQF_DISABLED, and WARN if the allocation fails for some reason,
so no need to print on that failure.  It will return positive if
the message will not be used by the kernel, in which case we can
free the virq.

In addition to elimiating inefficient code, this also corrects the
error that a kernel built with kexec but without a debugger would
not register the ipi for kdump to notify the other cpus of a crash.

This also restores the debugger action to be static to kernel/smp.c.

Signed-off-by: Milton Miller <miltonm@bga.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/smp.h
arch/powerpc/kernel/smp.c
arch/powerpc/platforms/cell/interrupt.c