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>
This commit is contained in:
Lai Jiangshan
2010-05-26 14:43:36 -07:00
committed by Linus Torvalds
parent c9d221f86e
commit 79a6cdeb7e

View File

@@ -20,6 +20,20 @@
/* Serializes the updates to cpu_online_mask, cpu_present_mask */ /* Serializes the updates to cpu_online_mask, cpu_present_mask */
static DEFINE_MUTEX(cpu_add_remove_lock); 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); static __cpuinitdata RAW_NOTIFIER_HEAD(cpu_chain);
/* If set, cpu_up and cpu_down will return -EBUSY and do nothing. /* 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; static int cpu_hotplug_disabled;
#ifdef CONFIG_HOTPLUG_CPU
static struct { static struct {
struct task_struct *active_writer; struct task_struct *active_writer;
struct mutex lock; /* Synchronizes accesses to refcount, */ struct mutex lock; /* Synchronizes accesses to refcount, */
@@ -41,8 +57,6 @@ static struct {
.refcount = 0, .refcount = 0,
}; };
#ifdef CONFIG_HOTPLUG_CPU
void get_online_cpus(void) void get_online_cpus(void)
{ {
might_sleep(); might_sleep();
@@ -67,22 +81,6 @@ void put_online_cpus(void)
} }
EXPORT_SYMBOL_GPL(put_online_cpus); 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 * This ensures that the hotplug operation can begin only when the
* refcount goes to zero. * refcount goes to zero.
@@ -124,6 +122,12 @@ static void cpu_hotplug_done(void)
cpu_hotplug.active_writer = NULL; cpu_hotplug.active_writer = NULL;
mutex_unlock(&cpu_hotplug.lock); 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? */ /* Need to know about CPUs going up/down? */
int __ref register_cpu_notifier(struct notifier_block *nb) int __ref register_cpu_notifier(struct notifier_block *nb)
{ {