diff options
author | Stephen Rothwell <sfr@elm.ozlabs.ibm.com> | 2008-09-13 10:11:25 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@elm.ozlabs.ibm.com> | 2008-09-13 10:11:25 +1000 |
commit | dee34d72ff950b907a68de3cc3efbdd33df4d126 (patch) | |
tree | 49f4ac13f70f7254c7a8cf41a4f1d6bb3dd7ccd9 /include | |
parent | eeefe3613133ce05f7fcf7fd3eb7b5fde94338ee (diff) | |
parent | ea09af7a7120dd65d8d4a988a78360a7321808dc (diff) |
Merge commit 'fastboot/auto-fastboot-next'
Conflicts:
include/linux/init.h
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 6 | ||||
-rw-r--r-- | include/linux/init.h | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index ea0a18fb1b87..9d2c76912efb 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -409,8 +409,12 @@ *(.initcall5.init) \ *(.initcall5s.init) \ *(.initcallrootfs.init) \ + *(.initcall6s.init) \ + VMLINUX_SYMBOL(__async_initcall_start) = .; \ + *(.initcall6a.init) \ + VMLINUX_SYMBOL(__async_initcall_end) = .; \ *(.initcall6.init) \ - *(.initcall6s.init) \ + VMLINUX_SYMBOL(__device_initcall_end) = .; \ *(.initcall7.init) \ *(.initcall7s.init) diff --git a/include/linux/init.h b/include/linux/init.h index 68a1c49ae3ed..8a500f9e1baa 100644 --- a/include/linux/init.h +++ b/include/linux/init.h @@ -144,6 +144,8 @@ extern char __initdata boot_command_line[]; extern char *saved_command_line; extern unsigned int reset_devices; extern int initmem_now_dynamic; +extern int do_one_initcall(initcall_t fn); + /* used by init/main.c */ void setup_arch(char **); @@ -198,11 +200,13 @@ extern void (*late_time_init)(void); #define fs_initcall_sync(fn) __define_initcall("5s",fn,5s) #define rootfs_initcall(fn) __define_initcall("rootfs",fn,rootfs) #define device_initcall(fn) __define_initcall("6",fn,6) +#define device_initcall_async(fn) __define_initcall("6a", fn, 6a) #define device_initcall_sync(fn) __define_initcall("6s",fn,6s) #define late_initcall(fn) __define_initcall("7",fn,7) #define late_initcall_sync(fn) __define_initcall("7s",fn,7s) #define __initcall(fn) device_initcall(fn) +#define __initcall_async(fn) device_initcall_async(fn) #define __exitcall(fn) \ static exitcall_t __exitcall_##fn __exit_call = fn @@ -302,6 +306,7 @@ extern void per_cpu_alloc_dyn_array(int cpu, char *ptr); * be one per module. */ #define module_init(x) __initcall(x); +#define module_init_async(x) __initcall_async(x); /** * module_exit() - driver exit entry point @@ -324,10 +329,13 @@ extern void per_cpu_alloc_dyn_array(int cpu, char *ptr); #define subsys_initcall(fn) module_init(fn) #define fs_initcall(fn) module_init(fn) #define device_initcall(fn) module_init(fn) +#define device_initcall_async(fn) module_init(fn) #define late_initcall(fn) module_init(fn) #define security_initcall(fn) module_init(fn) +#define module_init_async(fn) module_init(fn) + /* Each module must use one module_init(). */ #define module_init(initfn) \ static inline initcall_t __inittest(void) \ |