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>
This commit is contained in:
Родитель
d8699e65c6
Коммит
a9c5926469
|
@ -904,4 +904,25 @@ void mpic_request_ipis(void)
|
|||
|
||||
printk("IPIs requested... \n");
|
||||
}
|
||||
|
||||
void smp_mpic_message_pass(int target, int msg)
|
||||
{
|
||||
/* make sure we're sending something that translates to an IPI */
|
||||
if ((unsigned int)msg > 3) {
|
||||
printk("SMP %d: smp_message_pass: unknown msg %d\n",
|
||||
smp_processor_id(), msg);
|
||||
return;
|
||||
}
|
||||
switch (target) {
|
||||
case MSG_ALL:
|
||||
mpic_send_ipi(msg, 0xffffffff);
|
||||
break;
|
||||
case MSG_ALL_BUT_SELF:
|
||||
mpic_send_ipi(msg, 0xffffffff & ~(1 << smp_processor_id()));
|
||||
break;
|
||||
default:
|
||||
mpic_send_ipi(msg, 1 << target);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_SMP */
|
||||
|
|
|
@ -69,28 +69,6 @@ void smp_call_function_interrupt(void);
|
|||
int smt_enabled_at_boot = 1;
|
||||
|
||||
#ifdef CONFIG_MPIC
|
||||
void smp_mpic_message_pass(int target, int msg)
|
||||
{
|
||||
/* make sure we're sending something that translates to an IPI */
|
||||
if ( msg > 0x3 ){
|
||||
printk("SMP %d: smp_message_pass: unknown msg %d\n",
|
||||
smp_processor_id(), msg);
|
||||
return;
|
||||
}
|
||||
switch ( target )
|
||||
{
|
||||
case MSG_ALL:
|
||||
mpic_send_ipi(msg, 0xffffffff);
|
||||
break;
|
||||
case MSG_ALL_BUT_SELF:
|
||||
mpic_send_ipi(msg, 0xffffffff & ~(1 << smp_processor_id()));
|
||||
break;
|
||||
default:
|
||||
mpic_send_ipi(msg, 1 << target);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
int __init smp_mpic_probe(void)
|
||||
{
|
||||
int nr_cpus;
|
||||
|
|
|
@ -273,6 +273,9 @@ extern void mpic_request_ipis(void);
|
|||
/* Send an IPI (non offseted number 0..3) */
|
||||
extern void mpic_send_ipi(unsigned int ipi_no, unsigned int cpu_mask);
|
||||
|
||||
/* Send a message (IPI) to a given target (cpu number or MSG_*) */
|
||||
void smp_mpic_message_pass(int target, int msg);
|
||||
|
||||
/* Fetch interrupt from a given mpic */
|
||||
extern int mpic_get_one_irq(struct mpic *mpic, struct pt_regs *regs);
|
||||
/* This one gets to the primary mpic */
|
||||
|
|
|
@ -77,7 +77,6 @@ extern int smt_enabled_at_boot;
|
|||
|
||||
extern int smp_mpic_probe(void);
|
||||
extern void smp_mpic_setup_cpu(int cpu);
|
||||
extern void smp_mpic_message_pass(int target, int msg);
|
||||
extern void smp_generic_kick_cpu(int nr);
|
||||
|
||||
extern void smp_generic_give_timebase(void);
|
||||
|
|
Загрузка…
Ссылка в новой задаче