diff options
Diffstat (limited to 'include/linux/cpu.h')
-rw-r--r-- | include/linux/cpu.h | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/include/linux/cpu.h b/include/linux/cpu.h index f02d71bf6894..bfb520212d71 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h | |||
@@ -24,10 +24,11 @@ | |||
24 | #include <linux/compiler.h> | 24 | #include <linux/compiler.h> |
25 | #include <linux/cpumask.h> | 25 | #include <linux/cpumask.h> |
26 | #include <asm/semaphore.h> | 26 | #include <asm/semaphore.h> |
27 | #include <linux/mutex.h> | ||
27 | 28 | ||
28 | struct cpu { | 29 | struct cpu { |
29 | int node_id; /* The node which contains the CPU */ | 30 | int node_id; /* The node which contains the CPU */ |
30 | int no_control; /* Should the sysfs control file be created? */ | 31 | int hotpluggable; /* creates sysfs control file if hotpluggable */ |
31 | struct sys_device sysdev; | 32 | struct sys_device sysdev; |
32 | }; | 33 | }; |
33 | 34 | ||
@@ -74,6 +75,17 @@ extern struct sysdev_class cpu_sysdev_class; | |||
74 | 75 | ||
75 | #ifdef CONFIG_HOTPLUG_CPU | 76 | #ifdef CONFIG_HOTPLUG_CPU |
76 | /* Stop CPUs going up and down. */ | 77 | /* Stop CPUs going up and down. */ |
78 | |||
79 | static inline void cpuhotplug_mutex_lock(struct mutex *cpu_hp_mutex) | ||
80 | { | ||
81 | mutex_lock(cpu_hp_mutex); | ||
82 | } | ||
83 | |||
84 | static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex) | ||
85 | { | ||
86 | mutex_unlock(cpu_hp_mutex); | ||
87 | } | ||
88 | |||
77 | extern void lock_cpu_hotplug(void); | 89 | extern void lock_cpu_hotplug(void); |
78 | extern void unlock_cpu_hotplug(void); | 90 | extern void unlock_cpu_hotplug(void); |
79 | #define hotcpu_notifier(fn, pri) { \ | 91 | #define hotcpu_notifier(fn, pri) { \ |
@@ -85,17 +97,24 @@ extern void unlock_cpu_hotplug(void); | |||
85 | #define unregister_hotcpu_notifier(nb) unregister_cpu_notifier(nb) | 97 | #define unregister_hotcpu_notifier(nb) unregister_cpu_notifier(nb) |
86 | int cpu_down(unsigned int cpu); | 98 | int cpu_down(unsigned int cpu); |
87 | #define cpu_is_offline(cpu) unlikely(!cpu_online(cpu)) | 99 | #define cpu_is_offline(cpu) unlikely(!cpu_online(cpu)) |
88 | #else | 100 | |
101 | #else /* CONFIG_HOTPLUG_CPU */ | ||
102 | |||
103 | static inline void cpuhotplug_mutex_lock(struct mutex *cpu_hp_mutex) | ||
104 | { } | ||
105 | static inline void cpuhotplug_mutex_unlock(struct mutex *cpu_hp_mutex) | ||
106 | { } | ||
107 | |||
89 | #define lock_cpu_hotplug() do { } while (0) | 108 | #define lock_cpu_hotplug() do { } while (0) |
90 | #define unlock_cpu_hotplug() do { } while (0) | 109 | #define unlock_cpu_hotplug() do { } while (0) |
91 | #define lock_cpu_hotplug_interruptible() 0 | 110 | #define lock_cpu_hotplug_interruptible() 0 |
92 | #define hotcpu_notifier(fn, pri) do { } while (0) | 111 | #define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0) |
93 | #define register_hotcpu_notifier(nb) do { } while (0) | 112 | #define register_hotcpu_notifier(nb) do { (void)(nb); } while (0) |
94 | #define unregister_hotcpu_notifier(nb) do { } while (0) | 113 | #define unregister_hotcpu_notifier(nb) do { (void)(nb); } while (0) |
95 | 114 | ||
96 | /* CPUs don't go offline once they're online w/o CONFIG_HOTPLUG_CPU */ | 115 | /* CPUs don't go offline once they're online w/o CONFIG_HOTPLUG_CPU */ |
97 | static inline int cpu_is_offline(int cpu) { return 0; } | 116 | static inline int cpu_is_offline(int cpu) { return 0; } |
98 | #endif | 117 | #endif /* CONFIG_HOTPLUG_CPU */ |
99 | 118 | ||
100 | #ifdef CONFIG_SUSPEND_SMP | 119 | #ifdef CONFIG_SUSPEND_SMP |
101 | extern int disable_nonboot_cpus(void); | 120 | extern int disable_nonboot_cpus(void); |