aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Konovalov <andrey.konovalov@linaro.org>2012-08-20 22:55:07 +0400
committerAndrey Konovalov <andrey.konovalov@linaro.org>2012-08-20 22:55:07 +0400
commit77a51d3f0defd209f74c69f0ffe0893f100d4a07 (patch)
tree4fd80994685080ab3f34652a3aadcaed67ccb139
parent3c5c84298ebcfa702303e51d34f018bc6eec065f (diff)
parentac20a0e853ca73bb821a85d8492d965e07513ccd (diff)
Merge branch 'tracking-workaround-ubuntu-sauce' into merge-linux-linaro-core-trackingtracking-llct-ll-20120820.1llct-20120820.1
-rw-r--r--include/asm-generic/vmlinux.lds.h1
-rw-r--r--include/linux/init.h1
-rw-r--r--include/linux/kmod.h2
-rw-r--r--init/initramfs.c35
-rw-r--r--init/main.c6
-rw-r--r--kernel/kmod.c2
6 files changed, 2 insertions, 45 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index b5590e10b3a7..4e2e1cc505ab 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -626,7 +626,6 @@
*(.initcallearly.init) \
INIT_CALLS_LEVEL(0) \
INIT_CALLS_LEVEL(1) \
- INIT_CALLS_LEVEL(earlyrootfs) \
INIT_CALLS_LEVEL(2) \
INIT_CALLS_LEVEL(3) \
INIT_CALLS_LEVEL(4) \
diff --git a/include/linux/init.h b/include/linux/init.h
index d8ed250fce30..5e664f671615 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -197,7 +197,6 @@ extern bool initcall_debug;
#define core_initcall(fn) __define_initcall("1",fn,1)
#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)
-#define earlyrootfs_initcall(fn) __define_initcall("earlyrootfs",fn,rootfs)
#define postcore_initcall(fn) __define_initcall("2",fn,2)
#define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)
#define arch_initcall(fn) __define_initcall("3",fn,3)
diff --git a/include/linux/kmod.h b/include/linux/kmod.h
index 6f571b1be39e..5398d5807075 100644
--- a/include/linux/kmod.h
+++ b/include/linux/kmod.h
@@ -71,8 +71,6 @@ call_usermodehelper_fns(char *path, char **argv, char **envp, int wait,
int (*init)(struct subprocess_info *info, struct cred *new),
void (*cleanup)(struct subprocess_info *), void *data);
-void populate_rootfs_wait(void);
-
static inline int
call_usermodehelper(char *path, char **argv, char **envp, int wait)
{
diff --git a/init/initramfs.c b/init/initramfs.c
index a9ea4066e2ef..84c6bf111300 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -18,8 +18,6 @@
#include <linux/dirent.h>
#include <linux/syscalls.h>
#include <linux/utime.h>
-#include <linux/async.h>
-#include <linux/export.h>
static __initdata char *message;
static void __init error(char *x)
@@ -581,15 +579,7 @@ static void __init clean_rootfs(void)
}
#endif
-LIST_HEAD(populate_rootfs_domain);
-
-void populate_rootfs_wait(void)
-{
- async_synchronize_full_domain(&populate_rootfs_domain);
-}
-EXPORT_SYMBOL(populate_rootfs_wait);
-
-static void __init async_populate_rootfs(void *data, async_cookie_t cookie)
+static int __init populate_rootfs(void)
{
char *err = unpack_to_rootfs(__initramfs_start, __initramfs_size);
if (err)
@@ -602,7 +592,7 @@ static void __init async_populate_rootfs(void *data, async_cookie_t cookie)
initrd_end - initrd_start);
if (!err) {
free_initrd();
- return;
+ return 0;
} else {
clean_rootfs();
unpack_to_rootfs(__initramfs_start, __initramfs_size);
@@ -626,27 +616,6 @@ static void __init async_populate_rootfs(void *data, async_cookie_t cookie)
free_initrd();
#endif
}
- return;
-}
-
-static int __initdata rootfs_populated;
-
-static int __init populate_rootfs_early(void)
-{
- if (num_online_cpus() > 1) {
- rootfs_populated = 1;
- async_schedule_domain(async_populate_rootfs, NULL,
- &populate_rootfs_domain);
- }
- return 0;
-}
-static int __init populate_rootfs(void)
-{
- if (!rootfs_populated)
- async_schedule_domain(async_populate_rootfs, NULL,
- &populate_rootfs_domain);
return 0;
}
-
-earlyrootfs_initcall(populate_rootfs_early);
rootfs_initcall(populate_rootfs);
diff --git a/init/main.c b/init/main.c
index 6d265fc4307f..2173f4c9cbbd 100644
--- a/init/main.c
+++ b/init/main.c
@@ -892,12 +892,6 @@ static int __init kernel_init(void * unused)
(void) sys_dup(0);
(void) sys_dup(0);
/*
- * We need to ensure that the filesystem is ready by this point, wait for
- * async_populate_rootfs to complete.
- */
- populate_rootfs_wait();
-
- /*
* check if there is an early userspace init. If yes, let it do all
* the work
*/
diff --git a/kernel/kmod.c b/kernel/kmod.c
index c5710b59f438..6f99aead66c6 100644
--- a/kernel/kmod.c
+++ b/kernel/kmod.c
@@ -618,8 +618,6 @@ int call_usermodehelper_fns(
struct subprocess_info *info;
gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL;
- populate_rootfs_wait();
-
info = call_usermodehelper_setup(path, argv, envp, gfp_mask);
if (info == NULL)