diff options
| author | Lai Jiangshan <laijs@cn.fujitsu.com> | 2010-05-26 14:43:36 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-05-27 09:12:48 -0700 | 
| commit | 79a6cdeb7eb54e3d2d4bb9fc5f0231b057882a87 (patch) | |
| tree | 2a80342946cf206002ce5dcf32f097320f64fdd1 /kernel/cpu.c | |
| parent | c9d221f86e43d9fb16260fe18a8cd6767f36c8a5 (diff) | |
| download | olio-linux-3.10-79a6cdeb7eb54e3d2d4bb9fc5f0231b057882a87.tar.xz olio-linux-3.10-79a6cdeb7eb54e3d2d4bb9fc5f0231b057882a87.zip  | |
cpuhotplug: do not need cpu_hotplug_begin() when CONFIG_HOTPLUG_CPU=n
Since when CONFIG_HOTPLUG_CPU=n, get_online_cpus() do nothing, so we don't
need cpu_hotplug_begin() either.
This patch moves cpu_hotplug_begin()/cpu_hotplug_done() into the code
block of CONFIG_HOTPLUG_CPU=y.
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Gautham R Shenoy <ego@in.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/cpu.c')
| -rw-r--r-- | kernel/cpu.c | 40 | 
1 files changed, 22 insertions, 18 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c index 0690ac27a25..63e8de13c94 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -20,6 +20,20 @@  /* Serializes the updates to cpu_online_mask, cpu_present_mask */  static DEFINE_MUTEX(cpu_add_remove_lock); +/* + * The following two API's must be used when attempting + * to serialize the updates to cpu_online_mask, cpu_present_mask. + */ +void cpu_maps_update_begin(void) +{ +	mutex_lock(&cpu_add_remove_lock); +} + +void cpu_maps_update_done(void) +{ +	mutex_unlock(&cpu_add_remove_lock); +} +  static __cpuinitdata RAW_NOTIFIER_HEAD(cpu_chain);  /* If set, cpu_up and cpu_down will return -EBUSY and do nothing. @@ -27,6 +41,8 @@ static __cpuinitdata RAW_NOTIFIER_HEAD(cpu_chain);   */  static int cpu_hotplug_disabled; +#ifdef CONFIG_HOTPLUG_CPU +  static struct {  	struct task_struct *active_writer;  	struct mutex lock; /* Synchronizes accesses to refcount, */ @@ -41,8 +57,6 @@ static struct {  	.refcount = 0,  }; -#ifdef CONFIG_HOTPLUG_CPU -  void get_online_cpus(void)  {  	might_sleep(); @@ -67,22 +81,6 @@ void put_online_cpus(void)  }  EXPORT_SYMBOL_GPL(put_online_cpus); -#endif	/* CONFIG_HOTPLUG_CPU */ - -/* - * The following two API's must be used when attempting - * to serialize the updates to cpu_online_mask, cpu_present_mask. - */ -void cpu_maps_update_begin(void) -{ -	mutex_lock(&cpu_add_remove_lock); -} - -void cpu_maps_update_done(void) -{ -	mutex_unlock(&cpu_add_remove_lock); -} -  /*   * This ensures that the hotplug operation can begin only when the   * refcount goes to zero. @@ -124,6 +122,12 @@ static void cpu_hotplug_done(void)  	cpu_hotplug.active_writer = NULL;  	mutex_unlock(&cpu_hotplug.lock);  } + +#else /* #if CONFIG_HOTPLUG_CPU */ +static void cpu_hotplug_begin(void) {} +static void cpu_hotplug_done(void) {} +#endif	/* #esle #if CONFIG_HOTPLUG_CPU */ +  /* Need to know about CPUs going up/down? */  int __ref register_cpu_notifier(struct notifier_block *nb)  {  |