summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/include/asm/smp.h
diff options
context:
space:
mode:
authorMilton Miller <miltonm@bga.com>2008-11-14 20:11:49 +0000
committerPaul Mackerras <paulus@samba.org>2008-11-19 16:05:06 +1100
commit25ddd738c2ebffb6c2d3cf29c91b986d1bb39c99 (patch)
treecc22b3a4b2481954c1bcbfececac2abfcdb7af40 /arch/powerpc/include/asm/smp.h
parenta6326e98a28d8a57f693369c82559543c6950f09 (diff)
downloadblackbird-op-linux-25ddd738c2ebffb6c2d3cf29c91b986d1bb39c99.tar.gz
blackbird-op-linux-25ddd738c2ebffb6c2d3cf29c91b986d1bb39c99.zip
powerpc: Provide a separate handler for each IPI action
With the new generic smp call function helpers, I noticed the code in smp_message_recv was a single function call in many cases. While getting the message number from the ipi data is easy, we can reduce the path length by a function and data-dependent switch by registering seperate IPI actions for these simple calls. Originally I left the ipi action array exposed, but then I realized the registration code should be common too. The three users each had their own name array, so I made a fourth to convert all users to use a common one. Signed-off-by: Milton Miller <miltonm@bga.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/include/asm/smp.h')
-rw-r--r--arch/powerpc/include/asm/smp.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
index 1866cec4f967..c25f73d1d842 100644
--- a/arch/powerpc/include/asm/smp.h
+++ b/arch/powerpc/include/asm/smp.h
@@ -81,6 +81,13 @@ extern int cpu_to_core_id(int cpu);
#define PPC_MSG_CALL_FUNC_SINGLE 2
#define PPC_MSG_DEBUGGER_BREAK 3
+/*
+ * irq controllers that have dedicated ipis per message and don't
+ * need additional code in the action handler may use this
+ */
+extern int smp_request_message_ipi(int virq, int message);
+extern const char *smp_ipi_name[];
+
void smp_init_iSeries(void);
void smp_init_pSeries(void);
void smp_init_cell(void);
OpenPOWER on IntegriCloud