diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2009-09-24 11:34:44 -0400 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-09-23 20:04:45 -0400 |
commit | 48a048fed82a8e5fdd8618574f6d3de1a0d67a50 (patch) | |
tree | 0d1af3d63494feb3f21bc9e288c748fdd3b9601e /arch/mips | |
parent | c2a3a4881dc851ec9b5bdc83fdc03afa31d6fbed (diff) |
cpumask: arch_send_call_function_ipi_mask: mips
We're weaning the core code off handing cpumask's around on-stack.
This introduces arch_send_call_function_ipi_mask(), and by defining
it, the old arch_send_call_function_ipi is defined by the core code.
We also take the chance to wean the implementations off the
obsolescent for_each_cpu_mask(): making send_ipi_mask take the pointer
seemed the most natural way to ensure all implementations used
for_each_cpu.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/include/asm/smp-ops.h | 2 | ||||
-rw-r--r-- | arch/mips/include/asm/smp.h | 3 | ||||
-rw-r--r-- | arch/mips/kernel/smp-cmp.c | 4 | ||||
-rw-r--r-- | arch/mips/kernel/smp-mt.c | 4 | ||||
-rw-r--r-- | arch/mips/kernel/smp-up.c | 3 | ||||
-rw-r--r-- | arch/mips/kernel/smp.c | 2 | ||||
-rw-r--r-- | arch/mips/mipssim/sim_smtc.c | 5 | ||||
-rw-r--r-- | arch/mips/mti-malta/malta-smtc.c | 4 | ||||
-rw-r--r-- | arch/mips/pmc-sierra/yosemite/smp.c | 4 | ||||
-rw-r--r-- | arch/mips/sgi-ip27/ip27-smp.c | 4 | ||||
-rw-r--r-- | arch/mips/sibyte/bcm1480/smp.c | 5 | ||||
-rw-r--r-- | arch/mips/sibyte/sb1250/smp.c | 5 |
12 files changed, 25 insertions, 20 deletions
diff --git a/arch/mips/include/asm/smp-ops.h b/arch/mips/include/asm/smp-ops.h index fd545547b8aa..9e09af34c8a8 100644 --- a/arch/mips/include/asm/smp-ops.h +++ b/arch/mips/include/asm/smp-ops.h | |||
@@ -19,7 +19,7 @@ struct task_struct; | |||
19 | 19 | ||
20 | struct plat_smp_ops { | 20 | struct plat_smp_ops { |
21 | void (*send_ipi_single)(int cpu, unsigned int action); | 21 | void (*send_ipi_single)(int cpu, unsigned int action); |
22 | void (*send_ipi_mask)(cpumask_t mask, unsigned int action); | 22 | void (*send_ipi_mask)(const struct cpumask *mask, unsigned int action); |
23 | void (*init_secondary)(void); | 23 | void (*init_secondary)(void); |
24 | void (*smp_finish)(void); | 24 | void (*smp_finish)(void); |
25 | void (*cpus_done)(void); | 25 | void (*cpus_done)(void); |
diff --git a/arch/mips/include/asm/smp.h b/arch/mips/include/asm/smp.h index aaa2d4ab26dc..48c1967961ad 100644 --- a/arch/mips/include/asm/smp.h +++ b/arch/mips/include/asm/smp.h | |||
@@ -78,6 +78,7 @@ extern void play_dead(void); | |||
78 | extern asmlinkage void smp_call_function_interrupt(void); | 78 | extern asmlinkage void smp_call_function_interrupt(void); |
79 | 79 | ||
80 | extern void arch_send_call_function_single_ipi(int cpu); | 80 | extern void arch_send_call_function_single_ipi(int cpu); |
81 | extern void arch_send_call_function_ipi(cpumask_t mask); | 81 | extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); |
82 | #define arch_send_call_function_ipi_mask arch_send_call_function_ipi_mask | ||
82 | 83 | ||
83 | #endif /* __ASM_SMP_H */ | 84 | #endif /* __ASM_SMP_H */ |
diff --git a/arch/mips/kernel/smp-cmp.c b/arch/mips/kernel/smp-cmp.c index ad0ff5dc4d59..e5cf5b88fc28 100644 --- a/arch/mips/kernel/smp-cmp.c +++ b/arch/mips/kernel/smp-cmp.c | |||
@@ -80,11 +80,11 @@ void cmp_send_ipi_single(int cpu, unsigned int action) | |||
80 | local_irq_restore(flags); | 80 | local_irq_restore(flags); |
81 | } | 81 | } |
82 | 82 | ||
83 | static void cmp_send_ipi_mask(cpumask_t mask, unsigned int action) | 83 | static void cmp_send_ipi_mask(const struct cpumask *mask, unsigned int action) |
84 | { | 84 | { |
85 | unsigned int i; | 85 | unsigned int i; |
86 | 86 | ||
87 | for_each_cpu_mask(i, mask) | 87 | for_each_cpu(i, mask) |
88 | cmp_send_ipi_single(i, action); | 88 | cmp_send_ipi_single(i, action); |
89 | } | 89 | } |
90 | 90 | ||
diff --git a/arch/mips/kernel/smp-mt.c b/arch/mips/kernel/smp-mt.c index 6f7ee5ac46ee..9538ca42e008 100644 --- a/arch/mips/kernel/smp-mt.c +++ b/arch/mips/kernel/smp-mt.c | |||
@@ -141,11 +141,11 @@ static void vsmp_send_ipi_single(int cpu, unsigned int action) | |||
141 | local_irq_restore(flags); | 141 | local_irq_restore(flags); |
142 | } | 142 | } |
143 | 143 | ||
144 | static void vsmp_send_ipi_mask(cpumask_t mask, unsigned int action) | 144 | static void vsmp_send_ipi_mask(const struct cpumask *mask, unsigned int action) |
145 | { | 145 | { |
146 | unsigned int i; | 146 | unsigned int i; |
147 | 147 | ||
148 | for_each_cpu_mask(i, mask) | 148 | for_each_cpu(i, mask) |
149 | vsmp_send_ipi_single(i, action); | 149 | vsmp_send_ipi_single(i, action); |
150 | } | 150 | } |
151 | 151 | ||
diff --git a/arch/mips/kernel/smp-up.c b/arch/mips/kernel/smp-up.c index 2508d55d68fd..00500fea2750 100644 --- a/arch/mips/kernel/smp-up.c +++ b/arch/mips/kernel/smp-up.c | |||
@@ -18,7 +18,8 @@ static void up_send_ipi_single(int cpu, unsigned int action) | |||
18 | panic(KERN_ERR "%s called", __func__); | 18 | panic(KERN_ERR "%s called", __func__); |
19 | } | 19 | } |
20 | 20 | ||
21 | static inline void up_send_ipi_mask(cpumask_t mask, unsigned int action) | 21 | static inline void up_send_ipi_mask(const struct cpumask *mask, |
22 | unsigned int action) | ||
22 | { | 23 | { |
23 | panic(KERN_ERR "%s called", __func__); | 24 | panic(KERN_ERR "%s called", __func__); |
24 | } | 25 | } |
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 64668a93248b..df2ace9558b9 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c | |||
@@ -128,7 +128,7 @@ asmlinkage __cpuinit void start_secondary(void) | |||
128 | cpu_idle(); | 128 | cpu_idle(); |
129 | } | 129 | } |
130 | 130 | ||
131 | void arch_send_call_function_ipi(cpumask_t mask) | 131 | void arch_send_call_function_ipi_mask(const struct cpumask *mask) |
132 | { | 132 | { |
133 | mp_ops->send_ipi_mask(mask, SMP_CALL_FUNCTION); | 133 | mp_ops->send_ipi_mask(mask, SMP_CALL_FUNCTION); |
134 | } | 134 | } |
diff --git a/arch/mips/mipssim/sim_smtc.c b/arch/mips/mipssim/sim_smtc.c index d6e4f656ad14..5da30b6a65b7 100644 --- a/arch/mips/mipssim/sim_smtc.c +++ b/arch/mips/mipssim/sim_smtc.c | |||
@@ -43,11 +43,12 @@ static void ssmtc_send_ipi_single(int cpu, unsigned int action) | |||
43 | /* "CPU" may be TC of same VPE, VPE of same CPU, or different CPU */ | 43 | /* "CPU" may be TC of same VPE, VPE of same CPU, or different CPU */ |
44 | } | 44 | } |
45 | 45 | ||
46 | static inline void ssmtc_send_ipi_mask(cpumask_t mask, unsigned int action) | 46 | static inline void ssmtc_send_ipi_mask(const struct cpumask *mask, |
47 | unsigned int action) | ||
47 | { | 48 | { |
48 | unsigned int i; | 49 | unsigned int i; |
49 | 50 | ||
50 | for_each_cpu_mask(i, mask) | 51 | for_each_cpu(i, mask) |
51 | ssmtc_send_ipi_single(i, action); | 52 | ssmtc_send_ipi_single(i, action); |
52 | } | 53 | } |
53 | 54 | ||
diff --git a/arch/mips/mti-malta/malta-smtc.c b/arch/mips/mti-malta/malta-smtc.c index 499ffe5475df..192cfd2a539c 100644 --- a/arch/mips/mti-malta/malta-smtc.c +++ b/arch/mips/mti-malta/malta-smtc.c | |||
@@ -21,11 +21,11 @@ static void msmtc_send_ipi_single(int cpu, unsigned int action) | |||
21 | smtc_send_ipi(cpu, LINUX_SMP_IPI, action); | 21 | smtc_send_ipi(cpu, LINUX_SMP_IPI, action); |
22 | } | 22 | } |
23 | 23 | ||
24 | static void msmtc_send_ipi_mask(cpumask_t mask, unsigned int action) | 24 | static void msmtc_send_ipi_mask(const struct cpumask *mask, unsigned int action) |
25 | { | 25 | { |
26 | unsigned int i; | 26 | unsigned int i; |
27 | 27 | ||
28 | for_each_cpu_mask(i, mask) | 28 | for_each_cpu(i, mask) |
29 | msmtc_send_ipi_single(i, action); | 29 | msmtc_send_ipi_single(i, action); |
30 | } | 30 | } |
31 | 31 | ||
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c index 8ace27716232..326fe7a392e8 100644 --- a/arch/mips/pmc-sierra/yosemite/smp.c +++ b/arch/mips/pmc-sierra/yosemite/smp.c | |||
@@ -97,11 +97,11 @@ static void yos_send_ipi_single(int cpu, unsigned int action) | |||
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
100 | static void yos_send_ipi_mask(cpumask_t mask, unsigned int action) | 100 | static void yos_send_ipi_mask(const struct cpumask *mask, unsigned int action) |
101 | { | 101 | { |
102 | unsigned int i; | 102 | unsigned int i; |
103 | 103 | ||
104 | for_each_cpu_mask(i, mask) | 104 | for_each_cpu(i, mask) |
105 | yos_send_ipi_single(i, action); | 105 | yos_send_ipi_single(i, action); |
106 | } | 106 | } |
107 | 107 | ||
diff --git a/arch/mips/sgi-ip27/ip27-smp.c b/arch/mips/sgi-ip27/ip27-smp.c index cbcd7eb83bd1..9aa8f2951df6 100644 --- a/arch/mips/sgi-ip27/ip27-smp.c +++ b/arch/mips/sgi-ip27/ip27-smp.c | |||
@@ -165,11 +165,11 @@ static void ip27_send_ipi_single(int destid, unsigned int action) | |||
165 | REMOTE_HUB_SEND_INTR(COMPACT_TO_NASID_NODEID(cpu_to_node(destid)), irq); | 165 | REMOTE_HUB_SEND_INTR(COMPACT_TO_NASID_NODEID(cpu_to_node(destid)), irq); |
166 | } | 166 | } |
167 | 167 | ||
168 | static void ip27_send_ipi_mask(cpumask_t mask, unsigned int action) | 168 | static void ip27_send_ipi(const struct cpumask *mask, unsigned int action) |
169 | { | 169 | { |
170 | unsigned int i; | 170 | unsigned int i; |
171 | 171 | ||
172 | for_each_cpu_mask(i, mask) | 172 | for_each_cpu(i, mask) |
173 | ip27_send_ipi_single(i, action); | 173 | ip27_send_ipi_single(i, action); |
174 | } | 174 | } |
175 | 175 | ||
diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.c index 314691648c97..47b347c992ea 100644 --- a/arch/mips/sibyte/bcm1480/smp.c +++ b/arch/mips/sibyte/bcm1480/smp.c | |||
@@ -82,11 +82,12 @@ static void bcm1480_send_ipi_single(int cpu, unsigned int action) | |||
82 | __raw_writeq((((u64)action)<< 48), mailbox_0_set_regs[cpu]); | 82 | __raw_writeq((((u64)action)<< 48), mailbox_0_set_regs[cpu]); |
83 | } | 83 | } |
84 | 84 | ||
85 | static void bcm1480_send_ipi_mask(cpumask_t mask, unsigned int action) | 85 | static void bcm1480_send_ipi_mask(const struct cpumask *mask, |
86 | unsigned int action) | ||
86 | { | 87 | { |
87 | unsigned int i; | 88 | unsigned int i; |
88 | 89 | ||
89 | for_each_cpu_mask(i, mask) | 90 | for_each_cpu(i, mask) |
90 | bcm1480_send_ipi_single(i, action); | 91 | bcm1480_send_ipi_single(i, action); |
91 | } | 92 | } |
92 | 93 | ||
diff --git a/arch/mips/sibyte/sb1250/smp.c b/arch/mips/sibyte/sb1250/smp.c index cad14003b84f..c00a5cb1128d 100644 --- a/arch/mips/sibyte/sb1250/smp.c +++ b/arch/mips/sibyte/sb1250/smp.c | |||
@@ -70,11 +70,12 @@ static void sb1250_send_ipi_single(int cpu, unsigned int action) | |||
70 | __raw_writeq((((u64)action) << 48), mailbox_set_regs[cpu]); | 70 | __raw_writeq((((u64)action) << 48), mailbox_set_regs[cpu]); |
71 | } | 71 | } |
72 | 72 | ||
73 | static inline void sb1250_send_ipi_mask(cpumask_t mask, unsigned int action) | 73 | static inline void sb1250_send_ipi_mask(const struct cpumask *mask, |
74 | unsigned int action) | ||
74 | { | 75 | { |
75 | unsigned int i; | 76 | unsigned int i; |
76 | 77 | ||
77 | for_each_cpu_mask(i, mask) | 78 | for_each_cpu(i, mask) |
78 | sb1250_send_ipi_single(i, action); | 79 | sb1250_send_ipi_single(i, action); |
79 | } | 80 | } |
80 | 81 | ||