projects
/
platform
/
kernel
/
linux-arm64.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge ../linus
[platform/kernel/linux-arm64.git]
/
init
/
do_mounts.c
diff --git
a/init/do_mounts.c
b/init/do_mounts.c
index
8b671fe
..
21b3b8f
100644
(file)
--- a/
init/do_mounts.c
+++ b/
init/do_mounts.c
@@
-23,7
+23,6
@@
int root_mountflags = MS_RDONLY | MS_SILENT;
char * __initdata root_device_name;
static char __initdata saved_root_name[64];
char * __initdata root_device_name;
static char __initdata saved_root_name[64];
-/* this is initialized in init/main.c */
dev_t ROOT_DEV;
static int __init load_ramdisk(char *str)
dev_t ROOT_DEV;
static int __init load_ramdisk(char *str)
@@
-311,6
+310,11
@@
retry:
panic("VFS: Unable to mount root fs on %s", b);
}
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);
panic("VFS: Unable to mount root fs on %s", __bdevname(ROOT_DEV, b));
out:
putname(fs_names);
@@
-405,6
+409,10
@@
void __init prepare_namespace(void)
if (saved_root_name[0]) {
root_device_name = saved_root_name;
if (saved_root_name[0]) {
root_device_name = saved_root_name;
+ if (!strncmp(root_device_name, "mtd", 3)) {
+ mount_block_root(root_device_name, root_mountflags);
+ goto out;
+ }
ROOT_DEV = name_to_dev_t(root_device_name);
if (strncmp(root_device_name, "/dev/", 5) == 0)
root_device_name += 5;
ROOT_DEV = name_to_dev_t(root_device_name);
if (strncmp(root_device_name, "/dev/", 5) == 0)
root_device_name += 5;