summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/ps3/smp.c
diff options
context:
space:
mode:
authorMilton Miller <miltonm@bga.com>2011-05-10 21:29:10 +0200
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2011-05-19 06:30:46 +0200
commitf1072939b6dd01d038d47db0bdc01b33e5f90f28 (patch)
tree281747826833d254131a44bad9c954659137a5a8 /arch/powerpc/platforms/ps3/smp.c
parentpowerpc: Remove call sites of MSG_ALL_BUT_SELF (diff)
downloadlinux-f1072939b6dd01d038d47db0bdc01b33e5f90f28.tar.xz
linux-f1072939b6dd01d038d47db0bdc01b33e5f90f28.zip
powerpc: Remove checks for MSG_ALL and MSG_ALL_BUT_SELF
Now that smp_ops->smp_message_pass is always called with an (online) cpu number for the target remove the checks for MSG_ALL and MSG_ALL_BUT_SELF. Signed-off-by: Milton Miller <miltonm@bga.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/platforms/ps3/smp.c')
-rw-r--r--arch/powerpc/platforms/ps3/smp.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/arch/powerpc/platforms/ps3/smp.c b/arch/powerpc/platforms/ps3/smp.c
index 51ffde40af2b..4c44794faac0 100644
--- a/arch/powerpc/platforms/ps3/smp.c
+++ b/arch/powerpc/platforms/ps3/smp.c
@@ -39,7 +39,7 @@
#define MSG_COUNT 4
static DEFINE_PER_CPU(unsigned int [MSG_COUNT], ps3_ipi_virqs);
-static void do_message_pass(int target, int msg)
+static void ps3_smp_message_pass(int cpu, int msg)
{
int result;
unsigned int virq;
@@ -49,28 +49,12 @@ static void do_message_pass(int target, int msg)
return;
}
- virq = per_cpu(ps3_ipi_virqs, target)[msg];
+ virq = per_cpu(ps3_ipi_virqs, cpu)[msg];
result = ps3_send_event_locally(virq);
if (result)
DBG("%s:%d: ps3_send_event_locally(%d, %d) failed"
- " (%d)\n", __func__, __LINE__, target, msg, result);
-}
-
-static void ps3_smp_message_pass(int target, int msg)
-{
- int cpu;
-
- if (target < NR_CPUS)
- do_message_pass(target, msg);
- else if (target == MSG_ALL_BUT_SELF) {
- for_each_online_cpu(cpu)
- if (cpu != smp_processor_id())
- do_message_pass(cpu, msg);
- } else {
- for_each_online_cpu(cpu)
- do_message_pass(cpu, msg);
- }
+ " (%d)\n", __func__, __LINE__, cpu, msg, result);
}
static int ps3_smp_probe(void)