aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2007-07-27 06:29:08 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2007-07-27 06:29:17 -0400
commit3bb447fc8bb6523cb1cec7a0277d831a2b0462b7 (patch)
treee5f11fda2ff91d5670f1c046b53a12b4dbef55aa /arch/s390/kernel
parentd941cf5e373c356723fa648b9f0302a11c9b1770 (diff)
[S390] Convert to smp_call_function_single.
smp_call_function_single now has the same semantics as s390's smp_call_function_on. Therefore convert to the *single variant and get rid of some architecture specific code. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r--arch/s390/kernel/smp.c16
-rw-r--r--arch/s390/kernel/vtime.c2
2 files changed, 8 insertions, 10 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 182c085ae4dd..aff9f853fc30 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -170,30 +170,28 @@ int smp_call_function(void (*func) (void *info), void *info, int nonatomic,
170EXPORT_SYMBOL(smp_call_function); 170EXPORT_SYMBOL(smp_call_function);
171 171
172/* 172/*
173 * smp_call_function_on: 173 * smp_call_function_single:
174 * @cpu: the CPU where func should run
174 * @func: the function to run; this must be fast and non-blocking 175 * @func: the function to run; this must be fast and non-blocking
175 * @info: an arbitrary pointer to pass to the function 176 * @info: an arbitrary pointer to pass to the function
176 * @nonatomic: unused 177 * @nonatomic: unused
177 * @wait: if true, wait (atomically) until function has completed on other CPUs 178 * @wait: if true, wait (atomically) until function has completed on other CPUs
178 * @cpu: the CPU where func should run
179 * 179 *
180 * Run a function on one processor. 180 * Run a function on one processor.
181 * 181 *
182 * You must not call this function with disabled interrupts, from a 182 * You must not call this function with disabled interrupts, from a
183 * hardware interrupt handler or from a bottom half. 183 * hardware interrupt handler or from a bottom half.
184 */ 184 */
185int smp_call_function_on(void (*func) (void *info), void *info, int nonatomic, 185int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
186 int wait, int cpu) 186 int nonatomic, int wait)
187{ 187{
188 cpumask_t map = CPU_MASK_NONE;
189
190 preempt_disable(); 188 preempt_disable();
191 cpu_set(cpu, map); 189 __smp_call_function_map(func, info, nonatomic, wait,
192 __smp_call_function_map(func, info, nonatomic, wait, map); 190 cpumask_of_cpu(cpu));
193 preempt_enable(); 191 preempt_enable();
194 return 0; 192 return 0;
195} 193}
196EXPORT_SYMBOL(smp_call_function_on); 194EXPORT_SYMBOL(smp_call_function_single);
197 195
198static void do_send_stop(void) 196static void do_send_stop(void)
199{ 197{
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index b6ed143e8597..84ff78de6bac 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -415,7 +415,7 @@ EXPORT_SYMBOL(add_virt_timer_periodic);
415 415
416/* 416/*
417 * If we change a pending timer the function must be called on the CPU 417 * If we change a pending timer the function must be called on the CPU
418 * where the timer is running on, e.g. by smp_call_function_on() 418 * where the timer is running on, e.g. by smp_call_function_single()
419 * 419 *
420 * The original mod_timer adds the timer if it is not pending. For compatibility 420 * The original mod_timer adds the timer if it is not pending. For compatibility
421 * we do the same. The timer will be added on the current CPU as a oneshot timer. 421 * we do the same. The timer will be added on the current CPU as a oneshot timer.