diff options
| author | Ingo Molnar <mingo@kernel.org> | 2013-01-24 06:47:48 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2013-01-24 06:47:48 -0500 |
| commit | befddb21c845f8fb49e637997891ef97c6a869dc (patch) | |
| tree | 0e7629123184f2dd50291ad6d477b894175f0f26 /include/linux/init.h | |
| parent | e716efde75267eab919cdb2bef5b2cb77f305326 (diff) | |
| parent | 7d1f9aeff1ee4a20b1aeb377dd0f579fe9647619 (diff) | |
Merge tag 'v3.8-rc4' into irq/core
Merge Linux 3.8-rc4 before pulling in new commits - we were on an old v3.7 base.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux/init.h')
| -rw-r--r-- | include/linux/init.h | 64 |
1 files changed, 20 insertions, 44 deletions
diff --git a/include/linux/init.h b/include/linux/init.h index e59041e21df3..10ed4f436458 100644 --- a/include/linux/init.h +++ b/include/linux/init.h | |||
| @@ -93,14 +93,6 @@ | |||
| 93 | 93 | ||
| 94 | #define __exit __section(.exit.text) __exitused __cold notrace | 94 | #define __exit __section(.exit.text) __exitused __cold notrace |
| 95 | 95 | ||
| 96 | /* Used for HOTPLUG */ | ||
| 97 | #define __devinit __section(.devinit.text) __cold notrace | ||
| 98 | #define __devinitdata __section(.devinit.data) | ||
| 99 | #define __devinitconst __constsection(.devinit.rodata) | ||
| 100 | #define __devexit __section(.devexit.text) __exitused __cold notrace | ||
| 101 | #define __devexitdata __section(.devexit.data) | ||
| 102 | #define __devexitconst __constsection(.devexit.rodata) | ||
| 103 | |||
| 104 | /* Used for HOTPLUG_CPU */ | 96 | /* Used for HOTPLUG_CPU */ |
| 105 | #define __cpuinit __section(.cpuinit.text) __cold notrace | 97 | #define __cpuinit __section(.cpuinit.text) __cold notrace |
| 106 | #define __cpuinitdata __section(.cpuinit.data) | 98 | #define __cpuinitdata __section(.cpuinit.data) |
| @@ -126,10 +118,6 @@ | |||
| 126 | #define __INITRODATA .section ".init.rodata","a",%progbits | 118 | #define __INITRODATA .section ".init.rodata","a",%progbits |
| 127 | #define __FINITDATA .previous | 119 | #define __FINITDATA .previous |
| 128 | 120 | ||
| 129 | #define __DEVINIT .section ".devinit.text", "ax" | ||
| 130 | #define __DEVINITDATA .section ".devinit.data", "aw" | ||
| 131 | #define __DEVINITRODATA .section ".devinit.rodata", "a" | ||
| 132 | |||
| 133 | #define __CPUINIT .section ".cpuinit.text", "ax" | 121 | #define __CPUINIT .section ".cpuinit.text", "ax" |
| 134 | #define __CPUINITDATA .section ".cpuinit.data", "aw" | 122 | #define __CPUINITDATA .section ".cpuinit.data", "aw" |
| 135 | #define __CPUINITRODATA .section ".cpuinit.rodata", "a" | 123 | #define __CPUINITRODATA .section ".cpuinit.rodata", "a" |
| @@ -186,16 +174,16 @@ extern bool initcall_debug; | |||
| 186 | * can point at the same handler without causing duplicate-symbol build errors. | 174 | * can point at the same handler without causing duplicate-symbol build errors. |
| 187 | */ | 175 | */ |
| 188 | 176 | ||
| 189 | #define __define_initcall(level,fn,id) \ | 177 | #define __define_initcall(fn, id) \ |
| 190 | static initcall_t __initcall_##fn##id __used \ | 178 | static initcall_t __initcall_##fn##id __used \ |
| 191 | __attribute__((__section__(".initcall" level ".init"))) = fn | 179 | __attribute__((__section__(".initcall" #id ".init"))) = fn |
| 192 | 180 | ||
| 193 | /* | 181 | /* |
| 194 | * Early initcalls run before initializing SMP. | 182 | * Early initcalls run before initializing SMP. |
| 195 | * | 183 | * |
| 196 | * Only for built-in code, not modules. | 184 | * Only for built-in code, not modules. |
| 197 | */ | 185 | */ |
| 198 | #define early_initcall(fn) __define_initcall("early",fn,early) | 186 | #define early_initcall(fn) __define_initcall(fn, early) |
| 199 | 187 | ||
| 200 | /* | 188 | /* |
| 201 | * A "pure" initcall has no dependencies on anything else, and purely | 189 | * A "pure" initcall has no dependencies on anything else, and purely |
| @@ -204,23 +192,23 @@ extern bool initcall_debug; | |||
| 204 | * This only exists for built-in code, not for modules. | 192 | * This only exists for built-in code, not for modules. |
| 205 | * Keep main.c:initcall_level_names[] in sync. | 193 | * Keep main.c:initcall_level_names[] in sync. |
| 206 | */ | 194 | */ |
| 207 | #define pure_initcall(fn) __define_initcall("0",fn,0) | 195 | #define pure_initcall(fn) __define_initcall(fn, 0) |
| 208 | 196 | ||
| 209 | #define core_initcall(fn) __define_initcall("1",fn,1) | 197 | #define core_initcall(fn) __define_initcall(fn, 1) |
| 210 | #define core_initcall_sync(fn) __define_initcall("1s",fn,1s) | 198 | #define core_initcall_sync(fn) __define_initcall(fn, 1s) |
| 211 | #define postcore_initcall(fn) __define_initcall("2",fn,2) | 199 | #define postcore_initcall(fn) __define_initcall(fn, 2) |
| 212 | #define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s) | 200 | #define postcore_initcall_sync(fn) __define_initcall(fn, 2s) |
| 213 | #define arch_initcall(fn) __define_initcall("3",fn,3) | 201 | #define arch_initcall(fn) __define_initcall(fn, 3) |
| 214 | #define arch_initcall_sync(fn) __define_initcall("3s",fn,3s) | 202 | #define arch_initcall_sync(fn) __define_initcall(fn, 3s) |
| 215 | #define subsys_initcall(fn) __define_initcall("4",fn,4) | 203 | #define subsys_initcall(fn) __define_initcall(fn, 4) |
| 216 | #define subsys_initcall_sync(fn) __define_initcall("4s",fn,4s) | 204 | #define subsys_initcall_sync(fn) __define_initcall(fn, 4s) |
| 217 | #define fs_initcall(fn) __define_initcall("5",fn,5) | 205 | #define fs_initcall(fn) __define_initcall(fn, 5) |
| 218 | #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s) | 206 | #define fs_initcall_sync(fn) __define_initcall(fn, 5s) |
| 219 | #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs) | 207 | #define rootfs_initcall(fn) __define_initcall(fn, rootfs) |
| 220 | #define device_initcall(fn) __define_initcall("6",fn,6) | 208 | #define device_initcall(fn) __define_initcall(fn, 6) |
| 221 | #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) | 209 | #define device_initcall_sync(fn) __define_initcall(fn, 6s) |
| 222 | #define late_initcall(fn) __define_initcall("7",fn,7) | 210 | #define late_initcall(fn) __define_initcall(fn, 7) |
| 223 | #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) | 211 | #define late_initcall_sync(fn) __define_initcall(fn, 7s) |
| 224 | 212 | ||
| 225 | #define __initcall(fn) device_initcall(fn) | 213 | #define __initcall(fn) device_initcall(fn) |
| 226 | 214 | ||
| @@ -341,18 +329,6 @@ void __init parse_early_options(char *cmdline); | |||
| 341 | #define __INITRODATA_OR_MODULE __INITRODATA | 329 | #define __INITRODATA_OR_MODULE __INITRODATA |
| 342 | #endif /*CONFIG_MODULES*/ | 330 | #endif /*CONFIG_MODULES*/ |
| 343 | 331 | ||
| 344 | /* Functions marked as __devexit may be discarded at kernel link time, depending | ||
| 345 | on config options. Newer versions of binutils detect references from | ||
| 346 | retained sections to discarded sections and flag an error. Pointers to | ||
| 347 | __devexit functions must use __devexit_p(function_name), the wrapper will | ||
| 348 | insert either the function_name or NULL, depending on the config options. | ||
| 349 | */ | ||
| 350 | #if defined(MODULE) || defined(CONFIG_HOTPLUG) | ||
| 351 | #define __devexit_p(x) x | ||
| 352 | #else | ||
| 353 | #define __devexit_p(x) NULL | ||
| 354 | #endif | ||
| 355 | |||
| 356 | #ifdef MODULE | 332 | #ifdef MODULE |
| 357 | #define __exit_p(x) x | 333 | #define __exit_p(x) x |
| 358 | #else | 334 | #else |
