Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc: Move smp_mpic_message_pass into mpic.c

Having it here rather than in arch/ppc64/kernel/smp.c means that
we can use it on 32-bit SMP systems easily with ARCH=powerpc.

Signed-off-by: Paul Mackerras <paulus@samba.org>

+24 -23
+21
arch/powerpc/sysdev/mpic.c
··· 904 904 905 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 928 #endif /* CONFIG_SMP */
-22
arch/ppc64/kernel/smp.c
··· 69 69 int smt_enabled_at_boot = 1; 70 70 71 71 #ifdef CONFIG_MPIC 72 - void smp_mpic_message_pass(int target, int msg) 73 - { 74 - /* make sure we're sending something that translates to an IPI */ 75 - if ( msg > 0x3 ){ 76 - printk("SMP %d: smp_message_pass: unknown msg %d\n", 77 - smp_processor_id(), msg); 78 - return; 79 - } 80 - switch ( target ) 81 - { 82 - case MSG_ALL: 83 - mpic_send_ipi(msg, 0xffffffff); 84 - break; 85 - case MSG_ALL_BUT_SELF: 86 - mpic_send_ipi(msg, 0xffffffff & ~(1 << smp_processor_id())); 87 - break; 88 - default: 89 - mpic_send_ipi(msg, 1 << target); 90 - break; 91 - } 92 - } 93 - 94 72 int __init smp_mpic_probe(void) 95 73 { 96 74 int nr_cpus;
+3
include/asm-powerpc/mpic.h
··· 273 273 /* Send an IPI (non offseted number 0..3) */ 274 274 extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask); 275 275 276 + /* Send a message (IPI) to a given target (cpu number or MSG_*) */ 277 + void smp_mpic_message_pass(int target, int msg); 278 + 276 279 /* Fetch interrupt from a given mpic */ 277 280 extern int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs); 278 281 /* This one gets to the primary mpic */
-1
include/asm-ppc64/smp.h
··· 77 77 78 78 extern int smp_mpic_probe(void); 79 79 extern void smp_mpic_setup_cpu(int cpu); 80 - extern void smp_mpic_message_pass(int target, int msg); 81 80 extern void smp_generic_kick_cpu(int nr); 82 81 83 82 extern void smp_generic_give_timebase(void);