summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/cpu.h9
-rw-r--r--net/core/flow.c4
2 files changed, 11 insertions, 2 deletions
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 2f374d79f157..02579ec6b99c 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -37,7 +37,12 @@ extern int register_cpu_notifier(struct notifier_block *nb);
extern void unregister_cpu_notifier(struct notifier_block *nb);
int cpu_up(unsigned int cpu);
+
+#define lock_cpu_hotplug() down(&cpucontrol)
+#define unlock_cpu_hotplug() up(&cpucontrol)
+
#else
+
static inline int register_cpu_notifier(struct notifier_block *nb)
{
return 0;
@@ -45,6 +50,10 @@ static inline int register_cpu_notifier(struct notifier_block *nb)
static inline void unregister_cpu_notifier(struct notifier_block *nb)
{
}
+
+#define lock_cpu_hotplug() do { } while (0)
+#define unlock_cpu_hotplug() do { } while (0)
+
#endif /* CONFIG_SMP */
extern struct sysdev_class cpu_sysdev_class;
diff --git a/net/core/flow.c b/net/core/flow.c
index 4c920bb52707..f13a1752b603 100644
--- a/net/core/flow.c
+++ b/net/core/flow.c
@@ -286,7 +286,7 @@ void flow_cache_flush(void)
/* Don't want cpus going down or up during this, also protects
* against multiple callers. */
- down(&cpucontrol);
+ lock_cpu_hotplug();
atomic_set(&info.cpuleft, num_online_cpus());
init_completion(&info.completion);
@@ -296,7 +296,7 @@ void flow_cache_flush(void)
local_bh_enable();
wait_for_completion(&info.completion);
- up(&cpucontrol);
+ unlock_cpu_hotplug();
}
static void __devinit flow_cache_cpu_prepare(int cpu)