diff options
| -rw-r--r-- | include/linux/cpu.h | 9 | ||||
| -rw-r--r-- | net/core/flow.c | 4 |
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) |
