|
@@ -48,6 +48,15 @@ struct notifier_block;
|
|
|
|
|
|
#ifdef CONFIG_SMP
|
|
|
/* Need to know about CPUs going up/down? */
|
|
|
+#if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE)
|
|
|
+#define cpu_notifier(fn, pri) { \
|
|
|
+ static struct notifier_block fn##_nb __cpuinitdata = \
|
|
|
+ { .notifier_call = fn, .priority = pri }; \
|
|
|
+ register_cpu_notifier(&fn##_nb); \
|
|
|
+}
|
|
|
+#else /* #if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE) */
|
|
|
+#define cpu_notifier(fn, pri) do { (void)(fn); } while (0)
|
|
|
+#endif /* #else #if defined(CONFIG_HOTPLUG_CPU) || !defined(MODULE) */
|
|
|
#ifdef CONFIG_HOTPLUG_CPU
|
|
|
extern int register_cpu_notifier(struct notifier_block *nb);
|
|
|
extern void unregister_cpu_notifier(struct notifier_block *nb);
|
|
@@ -74,6 +83,8 @@ extern void cpu_maps_update_done(void);
|
|
|
|
|
|
#else /* CONFIG_SMP */
|
|
|
|
|
|
+#define cpu_notifier(fn, pri) do { (void)(fn); } while (0)
|
|
|
+
|
|
|
static inline int register_cpu_notifier(struct notifier_block *nb)
|
|
|
{
|
|
|
return 0;
|
|
@@ -99,11 +110,7 @@ extern struct sysdev_class cpu_sysdev_class;
|
|
|
|
|
|
extern void get_online_cpus(void);
|
|
|
extern void put_online_cpus(void);
|
|
|
-#define hotcpu_notifier(fn, pri) { \
|
|
|
- static struct notifier_block fn##_nb __cpuinitdata = \
|
|
|
- { .notifier_call = fn, .priority = pri }; \
|
|
|
- register_cpu_notifier(&fn##_nb); \
|
|
|
-}
|
|
|
+#define hotcpu_notifier(fn, pri) cpu_notifier(fn, pri)
|
|
|
#define register_hotcpu_notifier(nb) register_cpu_notifier(nb)
|
|
|
#define unregister_hotcpu_notifier(nb) unregister_cpu_notifier(nb)
|
|
|
int cpu_down(unsigned int cpu);
|