nfsd4.1: common slot allocation size calculation
[safe/jmp/linux-2.6] / include / linux / cpu.h
index a40247e..4753619 100644 (file)
@@ -23,8 +23,6 @@
 #include <linux/node.h>
 #include <linux/compiler.h>
 #include <linux/cpumask.h>
-#include <asm/semaphore.h>
-#include <linux/mutex.h>
 
 struct cpu {
        int node_id;            /* The node which contains the CPU */
@@ -50,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);
@@ -70,56 +77,48 @@ static inline void unregister_cpu_notifier(struct notifier_block *nb)
 #endif
 
 int cpu_up(unsigned int cpu);
+void notify_cpu_starting(unsigned int cpu);
+extern void cpu_maps_update_begin(void);
+extern void cpu_maps_update_done(void);
 
-#else
+#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;
 }
+
 static inline void unregister_cpu_notifier(struct notifier_block *nb)
 {
 }
 
-#endif /* CONFIG_SMP */
-extern struct sysdev_class cpu_sysdev_class;
-extern void cpu_hotplug_init(void);
-extern void cpu_maps_update_begin(void);
-extern void cpu_maps_update_done(void);
-
-#ifdef CONFIG_HOTPLUG_CPU
-/* Stop CPUs going up and down. */
-
-static inline void cpuhotplug_mutex_lock(struct mutex *cpu_hp_mutex)
+static inline void cpu_maps_update_begin(void)
 {
-       mutex_lock(cpu_hp_mutex);
 }
 
-static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex)
+static inline void cpu_maps_update_done(void)
 {
-       mutex_unlock(cpu_hp_mutex);
 }
 
-extern void lock_cpu_hotplug(void);
-extern void unlock_cpu_hotplug(void);
-#define hotcpu_notifier(fn, pri) {                             \
-       static struct notifier_block fn##_nb =                  \
-               { .notifier_call = fn, .priority = pri };       \
-       register_cpu_notifier(&fn##_nb);                        \
-}
+#endif /* CONFIG_SMP */
+extern struct sysdev_class cpu_sysdev_class;
+
+#ifdef CONFIG_HOTPLUG_CPU
+/* Stop CPUs going up and down. */
+
+extern void get_online_cpus(void);
+extern void put_online_cpus(void);
+#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);
 
 #else          /* CONFIG_HOTPLUG_CPU */
 
-static inline void cpuhotplug_mutex_lock(struct mutex *cpu_hp_mutex)
-{ }
-static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex)
-{ }
-
-#define lock_cpu_hotplug()     do { } while (0)
-#define unlock_cpu_hotplug()   do { } while (0)
+#define get_online_cpus()      do { } while (0)
+#define put_online_cpus()      do { } while (0)
 #define hotcpu_notifier(fn, pri)       do { (void)(fn); } while (0)
 /* These aren't inline functions due to a GCC bug. */
 #define register_hotcpu_notifier(nb)   ({ (void)(nb); 0; })