diff options
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap-2.6.24.7/add_rootwait.patch')
-rw-r--r-- | meta/recipes-kernel/linux/linux-omap-2.6.24.7/add_rootwait.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap-2.6.24.7/add_rootwait.patch b/meta/recipes-kernel/linux/linux-omap-2.6.24.7/add_rootwait.patch new file mode 100644 index 0000000000..80900526c6 --- /dev/null +++ b/meta/recipes-kernel/linux/linux-omap-2.6.24.7/add_rootwait.patch | |||
@@ -0,0 +1,47 @@ | |||
1 | Index: linux-2.6.22.19/init/do_mounts.c | ||
2 | =================================================================== | ||
3 | --- linux-2.6.22.19.orig/init/do_mounts.c 2008-07-25 17:29:47.000000000 +0100 | ||
4 | +++ linux-2.6.22.19/init/do_mounts.c 2008-07-25 17:31:17.000000000 +0100 | ||
5 | @@ -25,6 +25,7 @@ | ||
6 | int root_mountflags = MS_RDONLY | MS_SILENT; | ||
7 | char * __initdata root_device_name; | ||
8 | static char __initdata saved_root_name[64]; | ||
9 | +static int __initdata root_wait; | ||
10 | |||
11 | dev_t ROOT_DEV; | ||
12 | |||
13 | @@ -216,6 +217,16 @@ | ||
14 | |||
15 | __setup("root=", root_dev_setup); | ||
16 | |||
17 | +static int __init rootwait_setup(char *str) | ||
18 | +{ | ||
19 | + if (*str) | ||
20 | + return 0; | ||
21 | + root_wait = 1; | ||
22 | + return 1; | ||
23 | +} | ||
24 | + | ||
25 | +__setup("rootwait", rootwait_setup); | ||
26 | + | ||
27 | static char * __initdata root_mount_data; | ||
28 | static int __init root_data_setup(char *str) | ||
29 | { | ||
30 | @@ -443,6 +454,17 @@ | ||
31 | if (initrd_load()) | ||
32 | goto out; | ||
33 | |||
34 | + /* wait for any asynchronous scanning to complete */ | ||
35 | + if ((ROOT_DEV == 0) && root_wait) { | ||
36 | + printk(KERN_INFO "Waiting for root device %s...\n", | ||
37 | + saved_root_name); | ||
38 | + while (driver_probe_done() != 0 || | ||
39 | + (ROOT_DEV = name_to_dev_t(saved_root_name)) == 0) | ||
40 | + msleep(100); | ||
41 | + } | ||
42 | + | ||
43 | + is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR; | ||
44 | + | ||
45 | if (is_floppy && rd_doload && rd_load_disk(0)) | ||
46 | ROOT_DEV = Root_RAM0; | ||
47 | |||