aboutsummaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig9
-rw-r--r--init/do_mounts.c5
-rw-r--r--init/initramfs.c8
-rw-r--r--init/main.c2
4 files changed, 10 insertions, 14 deletions
diff --git a/init/Kconfig b/init/Kconfig
index f1bc2f0e94e..3b36a1d5365 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -374,15 +374,6 @@ config SLAB
SLOB is more space efficient but does not scale well and is
more susceptible to fragmentation.
-config DOUBLEFAULT
- default y
- bool "Enable doublefault exception handler" if EMBEDDED && X86_32
- help
- This option allows trapping of rare doublefault exceptions that
- would otherwise cause a system to silently reboot. Disabling this
- option saves about 4k and might cause you much additional grey
- hair.
-
endmenu # General setup
config TINY_SHMEM
diff --git a/init/do_mounts.c b/init/do_mounts.c
index adb7cad3e6e..f4b7b9d278c 100644
--- a/init/do_mounts.c
+++ b/init/do_mounts.c
@@ -310,6 +310,11 @@ retry:
panic("VFS: Unable to mount root fs on %s", b);
}
+
+ printk("No filesystem could mount root, tried: ");
+ for (p = fs_names; *p; p += strlen(p)+1)
+ printk(" %s", p);
+ printk("\n");
panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
out:
putname(fs_names);
diff --git a/init/initramfs.c b/init/initramfs.c
index 679d870d991..f81cfa40a71 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -26,10 +26,12 @@ static void __init free(void *where)
/* link hash */
+#define N_ALIGN(len) ((((len) + 1) & ~3) + 2)
+
static __initdata struct hash {
int ino, minor, major;
struct hash *next;
- char *name;
+ char name[N_ALIGN(PATH_MAX)];
} *head[32];
static inline int hash(int major, int minor, int ino)
@@ -57,7 +59,7 @@ static char __init *find_link(int major, int minor, int ino, char *name)
q->ino = ino;
q->minor = minor;
q->major = major;
- q->name = name;
+ strcpy(q->name, name);
q->next = NULL;
*p = q;
return NULL;
@@ -133,8 +135,6 @@ static inline void eat(unsigned n)
count -= n;
}
-#define N_ALIGN(len) ((((len) + 1) & ~3) + 2)
-
static __initdata char *collected;
static __initdata int remains;
static __initdata char *collect;
diff --git a/init/main.c b/init/main.c
index 4a2f0898dda..f715b9b8975 100644
--- a/init/main.c
+++ b/init/main.c
@@ -582,7 +582,7 @@ static void __init do_initcalls(void)
result = (*call)();
- if (result && (result != -ENODEV || initcall_debug)) {
+ if (result && result != -ENODEV && initcall_debug) {
sprintf(msgbuf, "error code %d", result);
msg = msgbuf;
}