diff options
Diffstat (limited to 'arch/powerpc/sysdev')
| -rw-r--r-- | arch/powerpc/sysdev/mpic.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 02b4d2488bfd..3948e759d41a 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c | |||
| @@ -904,4 +904,25 @@ void mpic_request_ipis(void) | |||
| 904 | 904 | ||
| 905 | printk("IPIs requested... \n"); | 905 | printk("IPIs requested... \n"); |
| 906 | } | 906 | } |
| 907 | |||
| 908 | void smp_mpic_message_pass(int target, int msg) | ||
| 909 | { | ||
| 910 | /* make sure we're sending something that translates to an IPI */ | ||
| 911 | if ((unsigned int)msg > 3) { | ||
| 912 | printk("SMP %d: smp_message_pass: unknown msg %d\n", | ||
| 913 | smp_processor_id(), msg); | ||
| 914 | return; | ||
| 915 | } | ||
| 916 | switch (target) { | ||
| 917 | case MSG_ALL: | ||
| 918 | mpic_send_ipi(msg, 0xffffffff); | ||
| 919 | break; | ||
| 920 | case MSG_ALL_BUT_SELF: | ||
| 921 | mpic_send_ipi(msg, 0xffffffff & ~(1 << smp_processor_id())); | ||
| 922 | break; | ||
| 923 | default: | ||
| 924 | mpic_send_ipi(msg, 1 << target); | ||
| 925 | break; | ||
| 926 | } | ||
| 927 | } | ||
| 907 | #endif /* CONFIG_SMP */ | 928 | #endif /* CONFIG_SMP */ |
