Commit 5cdaf183 authored by Thomas Gleixner's avatar Thomas Gleixner

x86: Add task_struct argument to smp_ops.cpu_up

Preparatory patch to use the generic idle thread allocation.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: x86@kernel.org
Link: http://lkml.kernel.org/r/20120420124557.176604405@linutronix.de
parent 29d5e047
...@@ -72,7 +72,7 @@ struct smp_ops { ...@@ -72,7 +72,7 @@ struct smp_ops {
void (*stop_other_cpus)(int wait); void (*stop_other_cpus)(int wait);
void (*smp_send_reschedule)(int cpu); void (*smp_send_reschedule)(int cpu);
int (*cpu_up)(unsigned cpu); int (*cpu_up)(unsigned cpu, struct task_struct *tidle);
int (*cpu_disable)(void); int (*cpu_disable)(void);
void (*cpu_die)(unsigned int cpu); void (*cpu_die)(unsigned int cpu);
void (*play_dead)(void); void (*play_dead)(void);
...@@ -117,7 +117,7 @@ static inline void smp_cpus_done(unsigned int max_cpus) ...@@ -117,7 +117,7 @@ static inline void smp_cpus_done(unsigned int max_cpus)
static inline int __cpu_up(unsigned int cpu, struct task_struct *tidle) static inline int __cpu_up(unsigned int cpu, struct task_struct *tidle)
{ {
return smp_ops.cpu_up(cpu); return smp_ops.cpu_up(cpu, tidle);
} }
static inline int __cpu_disable(void) static inline int __cpu_disable(void)
...@@ -154,7 +154,7 @@ void cpu_disable_common(void); ...@@ -154,7 +154,7 @@ void cpu_disable_common(void);
void native_smp_prepare_boot_cpu(void); void native_smp_prepare_boot_cpu(void);
void native_smp_prepare_cpus(unsigned int max_cpus); void native_smp_prepare_cpus(unsigned int max_cpus);
void native_smp_cpus_done(unsigned int max_cpus); void native_smp_cpus_done(unsigned int max_cpus);
int native_cpu_up(unsigned int cpunum); int native_cpu_up(unsigned int cpunum, struct task_struct *tidle);
int native_cpu_disable(void); int native_cpu_disable(void);
void native_cpu_die(unsigned int cpu); void native_cpu_die(unsigned int cpu);
void native_play_dead(void); void native_play_dead(void);
......
...@@ -818,7 +818,7 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu) ...@@ -818,7 +818,7 @@ static int __cpuinit do_boot_cpu(int apicid, int cpu)
return boot_error; return boot_error;
} }
int __cpuinit native_cpu_up(unsigned int cpu) int __cpuinit native_cpu_up(unsigned int cpu, struct task_struct *tidle)
{ {
int apicid = apic->cpu_present_to_apicid(cpu); int apicid = apic->cpu_present_to_apicid(cpu);
unsigned long flags; unsigned long flags;
......
...@@ -331,7 +331,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle) ...@@ -331,7 +331,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
return 0; return 0;
} }
static int __cpuinit xen_cpu_up(unsigned int cpu) static int __cpuinit xen_cpu_up(unsigned int cpu, struct task_struct *tidle)
{ {
struct task_struct *idle = idle_task(cpu); struct task_struct *idle = idle_task(cpu);
int rc; int rc;
...@@ -547,10 +547,10 @@ static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus) ...@@ -547,10 +547,10 @@ static void __init xen_hvm_smp_prepare_cpus(unsigned int max_cpus)
xen_init_lock_cpu(0); xen_init_lock_cpu(0);
} }
static int __cpuinit xen_hvm_cpu_up(unsigned int cpu) static int __cpuinit xen_hvm_cpu_up(unsigned int cpu, struct task_struct *tidle)
{ {
int rc; int rc;
rc = native_cpu_up(cpu); rc = native_cpu_up(cpu, tidle);
WARN_ON (xen_smp_intr_init(cpu)); WARN_ON (xen_smp_intr_init(cpu));
return rc; return rc;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment