diff options
author | Richard Purdie <richard@openedhand.com> | 2008-08-03 11:20:11 +0000 |
---|---|---|
committer | Richard Purdie <richard@openedhand.com> | 2008-08-03 11:20:11 +0000 |
commit | 6dda6e3c3e1413e08364fdca7496435a894abe5f (patch) | |
tree | 9dd8a6f0fb8b6d33eb36c99f532e406b071ee582 /meta/packages/linux/linux-omap-2.6.22.19/add_rootwait.patch | |
parent | feedc99ff99ee8386a4f552179b97ce06a617f83 (diff) | |
download | openembedded-core-6dda6e3c3e1413e08364fdca7496435a894abe5f.tar.gz openembedded-core-6dda6e3c3e1413e08364fdca7496435a894abe5f.tar.bz2 openembedded-core-6dda6e3c3e1413e08364fdca7496435a894abe5f.tar.xz openembedded-core-6dda6e3c3e1413e08364fdca7496435a894abe5f.zip |
linux-omap-2.6.22.19: Backport rootwait feature, make some further parts of the kernel modular
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5008 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/linux/linux-omap-2.6.22.19/add_rootwait.patch')
-rw-r--r-- | meta/packages/linux/linux-omap-2.6.22.19/add_rootwait.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/meta/packages/linux/linux-omap-2.6.22.19/add_rootwait.patch b/meta/packages/linux/linux-omap-2.6.22.19/add_rootwait.patch new file mode 100644 index 000000000..80900526c --- /dev/null +++ b/meta/packages/linux/linux-omap-2.6.22.19/add_rootwait.patch @@ -0,0 +1,47 @@ +Index: linux-2.6.22.19/init/do_mounts.c +=================================================================== +--- linux-2.6.22.19.orig/init/do_mounts.c 2008-07-25 17:29:47.000000000 +0100 ++++ linux-2.6.22.19/init/do_mounts.c 2008-07-25 17:31:17.000000000 +0100 +@@ -25,6 +25,7 @@ + int root_mountflags = MS_RDONLY | MS_SILENT; + char * __initdata root_device_name; + static char __initdata saved_root_name[64]; ++static int __initdata root_wait; + + dev_t ROOT_DEV; + +@@ -216,6 +217,16 @@ + + __setup("root=", root_dev_setup); + ++static int __init rootwait_setup(char *str) ++{ ++ if (*str) ++ return 0; ++ root_wait = 1; ++ return 1; ++} ++ ++__setup("rootwait", rootwait_setup); ++ + static char * __initdata root_mount_data; + static int __init root_data_setup(char *str) + { +@@ -443,6 +454,17 @@ + if (initrd_load()) + goto out; + ++ /* wait for any asynchronous scanning to complete */ ++ if ((ROOT_DEV == 0) && root_wait) { ++ printk(KERN_INFO "Waiting for root device %s...\n", ++ saved_root_name); ++ while (driver_probe_done() != 0 || ++ (ROOT_DEV = name_to_dev_t(saved_root_name)) == 0) ++ msleep(100); ++ } ++ ++ is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR; ++ + if (is_floppy && rd_doload && rd_load_disk(0)) + ROOT_DEV = Root_RAM0; + |