aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/alpha/kernel/smp.c2
-rw-r--r--arch/arm/kernel/smp.c2
-rw-r--r--arch/blackfin/mach-common/smp.c2
-rw-r--r--arch/cris/arch-v32/kernel/smp.c2
-rw-r--r--arch/hexagon/kernel/smp.c2
-rw-r--r--arch/ia64/kernel/smpboot.c2
-rw-r--r--arch/m32r/kernel/smpboot.c2
-rw-r--r--arch/mips/kernel/smp.c2
-rw-r--r--arch/mn10300/kernel/smp.c2
-rw-r--r--arch/parisc/kernel/smp.c2
-rw-r--r--arch/powerpc/kernel/smp.c2
-rw-r--r--arch/s390/include/asm/smp.h2
-rw-r--r--arch/s390/kernel/smp.c2
-rw-r--r--arch/sh/kernel/smp.c2
-rw-r--r--arch/sparc/kernel/smp_32.c2
-rw-r--r--arch/sparc/kernel/smp_64.c2
-rw-r--r--arch/tile/kernel/smpboot.c2
-rw-r--r--arch/um/kernel/smp.c2
-rw-r--r--arch/x86/include/asm/smp.h4
-rw-r--r--include/linux/smp.h2
-rw-r--r--kernel/cpu.c2
21 files changed, 23 insertions, 21 deletions
diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c
index 50d438db1f6b..68d39470fb52 100644
--- a/arch/alpha/kernel/smp.c
+++ b/arch/alpha/kernel/smp.c
@@ -487,7 +487,7 @@ smp_prepare_boot_cpu(void)
487} 487}
488 488
489int __cpuinit 489int __cpuinit
490__cpu_up(unsigned int cpu) 490__cpu_up(unsigned int cpu, struct task_struct *tidle)
491{ 491{
492 smp_boot_one_cpu(cpu); 492 smp_boot_one_cpu(cpu);
493 493
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
index addbbe8028c2..f0e2cbbd837d 100644
--- a/arch/arm/kernel/smp.c
+++ b/arch/arm/kernel/smp.c
@@ -60,7 +60,7 @@ enum ipi_msg_type {
60 60
61static DECLARE_COMPLETION(cpu_running); 61static DECLARE_COMPLETION(cpu_running);
62 62
63int __cpuinit __cpu_up(unsigned int cpu) 63int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
64{ 64{
65 struct cpuinfo_arm *ci = &per_cpu(cpu_data, cpu); 65 struct cpuinfo_arm *ci = &per_cpu(cpu_data, cpu);
66 struct task_struct *idle = ci->idle; 66 struct task_struct *idle = ci->idle;
diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c
index ac8f8a43158c..d0cddd95b0dd 100644
--- a/arch/blackfin/mach-common/smp.c
+++ b/arch/blackfin/mach-common/smp.c
@@ -340,7 +340,7 @@ void smp_send_stop(void)
340 return; 340 return;
341} 341}
342 342
343int __cpuinit __cpu_up(unsigned int cpu) 343int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
344{ 344{
345 int ret; 345 int ret;
346 struct blackfin_cpudata *ci = &per_cpu(cpu_data, cpu); 346 struct blackfin_cpudata *ci = &per_cpu(cpu_data, cpu);
diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c
index 0b99df72d2a4..125ee2d7bc87 100644
--- a/arch/cris/arch-v32/kernel/smp.c
+++ b/arch/cris/arch-v32/kernel/smp.c
@@ -207,7 +207,7 @@ int setup_profiling_timer(unsigned int multiplier)
207 */ 207 */
208unsigned long cache_decay_ticks = 1; 208unsigned long cache_decay_ticks = 1;
209 209
210int __cpuinit __cpu_up(unsigned int cpu) 210int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
211{ 211{
212 smp_boot_one_cpu(cpu); 212 smp_boot_one_cpu(cpu);
213 return cpu_online(cpu) ? 0 : -ENOSYS; 213 return cpu_online(cpu) ? 0 : -ENOSYS;
diff --git a/arch/hexagon/kernel/smp.c b/arch/hexagon/kernel/smp.c
index 1298141874a3..93e77e2b17a8 100644
--- a/arch/hexagon/kernel/smp.c
+++ b/arch/hexagon/kernel/smp.c
@@ -196,7 +196,7 @@ void __cpuinit start_secondary(void)
196 * maintains control until "cpu_online(cpu)" is set. 196 * maintains control until "cpu_online(cpu)" is set.
197 */ 197 */
198 198
199int __cpuinit __cpu_up(unsigned int cpu) 199int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
200{ 200{
201 struct task_struct *idle; 201 struct task_struct *idle;
202 struct thread_info *thread; 202 struct thread_info *thread;
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index 796f6a5b966a..03e4ef3893c9 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -793,7 +793,7 @@ set_cpu_sibling_map(int cpu)
793} 793}
794 794
795int __cpuinit 795int __cpuinit
796__cpu_up (unsigned int cpu) 796__cpu_up(unsigned int cpu, struct task_struct *tidle)
797{ 797{
798 int ret; 798 int ret;
799 int sapicid; 799 int sapicid;
diff --git a/arch/m32r/kernel/smpboot.c b/arch/m32r/kernel/smpboot.c
index 31541c9b7eb6..a2cfc0abb05c 100644
--- a/arch/m32r/kernel/smpboot.c
+++ b/arch/m32r/kernel/smpboot.c
@@ -343,7 +343,7 @@ static void __init do_boot_cpu(int phys_id)
343 } 343 }
344} 344}
345 345
346int __cpuinit __cpu_up(unsigned int cpu_id) 346int __cpuinit __cpu_up(unsigned int cpu_id, struct task_struct *tidle)
347{ 347{
348 int timeout; 348 int timeout;
349 349
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index ba9376bf52a1..41079b256092 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -209,7 +209,7 @@ static void __cpuinit do_fork_idle(struct work_struct *work)
209 complete(&c_idle->done); 209 complete(&c_idle->done);
210} 210}
211 211
212int __cpuinit __cpu_up(unsigned int cpu) 212int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
213{ 213{
214 struct task_struct *idle; 214 struct task_struct *idle;
215 215
diff --git a/arch/mn10300/kernel/smp.c b/arch/mn10300/kernel/smp.c
index 910dddf65e44..c6b40dad0d0b 100644
--- a/arch/mn10300/kernel/smp.c
+++ b/arch/mn10300/kernel/smp.c
@@ -921,7 +921,7 @@ void initialize_secondary(void)
921 * __cpu_up - Set smp_commenced_mask for the nominated CPU 921 * __cpu_up - Set smp_commenced_mask for the nominated CPU
922 * @cpu: The target CPU. 922 * @cpu: The target CPU.
923 */ 923 */
924int __devinit __cpu_up(unsigned int cpu) 924int __devinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
925{ 925{
926 int timeout; 926 int timeout;
927 927
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c
index 0bb1d63907f8..eae8cd808f07 100644
--- a/arch/parisc/kernel/smp.c
+++ b/arch/parisc/kernel/smp.c
@@ -449,7 +449,7 @@ void smp_cpus_done(unsigned int cpu_max)
449} 449}
450 450
451 451
452int __cpuinit __cpu_up(unsigned int cpu) 452int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
453{ 453{
454 if (cpu != 0 && cpu < parisc_max_cpus) 454 if (cpu != 0 && cpu < parisc_max_cpus)
455 smp_boot_one_cpu(cpu); 455 smp_boot_one_cpu(cpu);
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index d9f94410fd7f..d38030fb3471 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -482,7 +482,7 @@ static int __cpuinit create_idle(unsigned int cpu)
482 return 0; 482 return 0;
483} 483}
484 484
485int __cpuinit __cpu_up(unsigned int cpu) 485int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
486{ 486{
487 int rc, c; 487 int rc, c;
488 488
diff --git a/arch/s390/include/asm/smp.h b/arch/s390/include/asm/smp.h
index c77c6de6f6c0..0b6f586c1383 100644
--- a/arch/s390/include/asm/smp.h
+++ b/arch/s390/include/asm/smp.h
@@ -16,7 +16,7 @@
16extern struct mutex smp_cpu_state_mutex; 16extern struct mutex smp_cpu_state_mutex;
17extern struct save_area *zfcpdump_save_areas[NR_CPUS + 1]; 17extern struct save_area *zfcpdump_save_areas[NR_CPUS + 1];
18 18
19extern int __cpu_up(unsigned int cpu); 19extern int __cpu_up(unsigned int cpu, struct task_struct *tidle);
20 20
21extern void arch_send_call_function_single_ipi(int cpu); 21extern void arch_send_call_function_single_ipi(int cpu);
22extern void arch_send_call_function_ipi_mask(const struct cpumask *mask); 22extern void arch_send_call_function_ipi_mask(const struct cpumask *mask);
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index 1f77227669e8..fc827aa8f9ca 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -738,7 +738,7 @@ static void __cpuinit smp_fork_idle(struct work_struct *work)
738} 738}
739 739
740/* Upping and downing of CPUs */ 740/* Upping and downing of CPUs */
741int __cpuinit __cpu_up(unsigned int cpu) 741int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
742{ 742{
743 struct create_idle c_idle; 743 struct create_idle c_idle;
744 struct pcpu *pcpu; 744 struct pcpu *pcpu;
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
index eaebdf6a5c77..ebb76e2a748b 100644
--- a/arch/sh/kernel/smp.c
+++ b/arch/sh/kernel/smp.c
@@ -220,7 +220,7 @@ extern struct {
220 void *thread_info; 220 void *thread_info;
221} stack_start; 221} stack_start;
222 222
223int __cpuinit __cpu_up(unsigned int cpu) 223int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
224{ 224{
225 struct task_struct *tsk; 225 struct task_struct *tsk;
226 unsigned long timeout; 226 unsigned long timeout;
diff --git a/arch/sparc/kernel/smp_32.c b/arch/sparc/kernel/smp_32.c
index f671e7fd6ddc..1f397ae11028 100644
--- a/arch/sparc/kernel/smp_32.c
+++ b/arch/sparc/kernel/smp_32.c
@@ -411,7 +411,7 @@ void __init smp_prepare_boot_cpu(void)
411 set_cpu_possible(cpuid, true); 411 set_cpu_possible(cpuid, true);
412} 412}
413 413
414int __cpuinit __cpu_up(unsigned int cpu) 414int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
415{ 415{
416 extern int __cpuinit smp4m_boot_one_cpu(int); 416 extern int __cpuinit smp4m_boot_one_cpu(int);
417 extern int __cpuinit smp4d_boot_one_cpu(int); 417 extern int __cpuinit smp4d_boot_one_cpu(int);
diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
index 3b1bd7c50164..2f9948c4107c 100644
--- a/arch/sparc/kernel/smp_64.c
+++ b/arch/sparc/kernel/smp_64.c
@@ -1227,7 +1227,7 @@ void __devinit smp_fill_in_sib_core_maps(void)
1227 } 1227 }
1228} 1228}
1229 1229
1230int __cpuinit __cpu_up(unsigned int cpu) 1230int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
1231{ 1231{
1232 int ret = smp_boot_one_cpu(cpu); 1232 int ret = smp_boot_one_cpu(cpu);
1233 1233
diff --git a/arch/tile/kernel/smpboot.c b/arch/tile/kernel/smpboot.c
index 172aef7d3159..84873fbe8f27 100644
--- a/arch/tile/kernel/smpboot.c
+++ b/arch/tile/kernel/smpboot.c
@@ -222,7 +222,7 @@ void __cpuinit online_secondary(void)
222 cpu_idle(); 222 cpu_idle();
223} 223}
224 224
225int __cpuinit __cpu_up(unsigned int cpu) 225int __cpuinit __cpu_up(unsigned int cpu, struct task_struct *tidle)
226{ 226{
227 /* Wait 5s total for all CPUs for them to come online */ 227 /* Wait 5s total for all CPUs for them to come online */
228 static int timeout; 228 static int timeout;
diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c
index 6f588e160fb0..a02b7e9e6b94 100644
--- a/arch/um/kernel/smp.c
+++ b/arch/um/kernel/smp.c
@@ -140,7 +140,7 @@ void smp_prepare_boot_cpu(void)
140 set_cpu_online(smp_processor_id(), true); 140 set_cpu_online(smp_processor_id(), true);
141} 141}
142 142
143int __cpu_up(unsigned int cpu) 143int __cpu_up(unsigned int cpu, struct task_struct *tidle)
144{ 144{
145 cpu_set(cpu, smp_commenced_mask); 145 cpu_set(cpu, smp_commenced_mask);
146 while (!cpu_online(cpu)) 146 while (!cpu_online(cpu))
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 0434c400287c..4eb3a74bc4b0 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -62,6 +62,8 @@ DECLARE_EARLY_PER_CPU(int, x86_cpu_to_logical_apicid);
62/* Static state in head.S used to set up a CPU */ 62/* Static state in head.S used to set up a CPU */
63extern unsigned long stack_start; /* Initial stack pointer address */ 63extern unsigned long stack_start; /* Initial stack pointer address */
64 64
65struct task_struct;
66
65struct smp_ops { 67struct smp_ops {
66 void (*smp_prepare_boot_cpu)(void); 68 void (*smp_prepare_boot_cpu)(void);
67 void (*smp_prepare_cpus)(unsigned max_cpus); 69 void (*smp_prepare_cpus)(unsigned max_cpus);
@@ -113,7 +115,7 @@ static inline void smp_cpus_done(unsigned int max_cpus)
113 smp_ops.smp_cpus_done(max_cpus); 115 smp_ops.smp_cpus_done(max_cpus);
114} 116}
115 117
116static inline int __cpu_up(unsigned int cpu) 118static inline int __cpu_up(unsigned int cpu, struct task_struct *tidle)
117{ 119{
118 return smp_ops.cpu_up(cpu); 120 return smp_ops.cpu_up(cpu);
119} 121}
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 10530d92c04b..24360de6c968 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -61,7 +61,7 @@ extern void smp_prepare_cpus(unsigned int max_cpus);
61/* 61/*
62 * Bring a CPU up 62 * Bring a CPU up
63 */ 63 */
64extern int __cpu_up(unsigned int cpunum); 64extern int __cpu_up(unsigned int cpunum, struct task_struct *tidle);
65 65
66/* 66/*
67 * Final polishing of CPUs 67 * Final polishing of CPUs
diff --git a/kernel/cpu.c b/kernel/cpu.c
index 2060c6e57027..e711aef0fb3c 100644
--- a/kernel/cpu.c
+++ b/kernel/cpu.c
@@ -309,7 +309,7 @@ static int __cpuinit _cpu_up(unsigned int cpu, int tasks_frozen)
309 } 309 }
310 310
311 /* Arch-specific enabling code. */ 311 /* Arch-specific enabling code. */
312 ret = __cpu_up(cpu); 312 ret = __cpu_up(cpu, NULL);
313 if (ret != 0) 313 if (ret != 0)
314 goto out_notify; 314 goto out_notify;
315 BUG_ON(!cpu_online(cpu)); 315 BUG_ON(!cpu_online(cpu));