X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/d076b120523ade34705f4a5dd19ca3c63c413532..5501cdbd020a98e7d31b6952e8fd079cadf2b05e:/target/linux/x86/patches-2.6.31/300-block2mtd_init.patch diff --git a/target/linux/x86/patches-2.6.31/300-block2mtd_init.patch b/target/linux/x86/patches-2.6.31/300-block2mtd_init.patch index 54cae9d0a..3e6ff602d 100644 --- a/target/linux/x86/patches-2.6.31/300-block2mtd_init.patch +++ b/target/linux/x86/patches-2.6.31/300-block2mtd_init.patch @@ -1,7 +1,20 @@ -Index: linux-2.6.31.5/drivers/mtd/devices/block2mtd.c -=================================================================== ---- linux-2.6.31.5.orig/drivers/mtd/devices/block2mtd.c 2009-11-07 13:52:05.000000000 +0100 -+++ linux-2.6.31.5/drivers/mtd/devices/block2mtd.c 2009-11-07 13:52:17.000000000 +0100 +--- a/arch/x86/kernel/vmlinux.lds.S ++++ b/arch/x86/kernel/vmlinux.lds.S +@@ -244,6 +244,12 @@ SECTIONS + __initcall_end = .; + } + ++ .root_initcall.init : AT(ADDR(.root_initcall.init) - LOAD_OFFSET) { ++ __root_initcall_start = .; ++ INITCALLS_ROOT ++ __root_initcall_end = .; ++ } ++ + .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) { + __con_initcall_start = .; + *(.con_initcall.init) +--- a/drivers/mtd/devices/block2mtd.c ++++ b/drivers/mtd/devices/block2mtd.c @@ -18,10 +18,18 @@ #include #include @@ -21,7 +34,7 @@ Index: linux-2.6.31.5/drivers/mtd/devices/block2mtd.c /* Info for the block device */ struct block2mtd_dev { -@@ -33,10 +41,34 @@ +@@ -33,10 +41,34 @@ struct block2mtd_dev { char devname[0]; }; @@ -56,7 +69,7 @@ Index: linux-2.6.31.5/drivers/mtd/devices/block2mtd.c static struct page *page_read(struct address_space *mapping, int index) { -@@ -511,7 +543,9 @@ +@@ -511,7 +543,9 @@ static int block2mtd_setup2(const char * if (token[2] && (strlen(token[2]) + 1 > 80)) parse_err("mtd device name too long"); @@ -67,10 +80,8 @@ Index: linux-2.6.31.5/drivers/mtd/devices/block2mtd.c return 0; } -Index: linux-2.6.31.5/include/asm-generic/vmlinux.lds.h -=================================================================== ---- linux-2.6.31.5.orig/include/asm-generic/vmlinux.lds.h 2009-11-07 13:52:04.000000000 +0100 -+++ linux-2.6.31.5/include/asm-generic/vmlinux.lds.h 2009-11-07 13:52:17.000000000 +0100 +--- a/include/asm-generic/vmlinux.lds.h ++++ b/include/asm-generic/vmlinux.lds.h @@ -622,12 +622,14 @@ *(.initcall4s.init) \ *(.initcall5.init) \ @@ -87,11 +98,9 @@ Index: linux-2.6.31.5/include/asm-generic/vmlinux.lds.h #define INIT_CALLS \ VMLINUX_SYMBOL(__initcall_start) = .; \ INITCALLS \ -Index: linux-2.6.31.5/init/do_mounts.c -=================================================================== ---- linux-2.6.31.5.orig/init/do_mounts.c 2009-10-23 00:57:56.000000000 +0200 -+++ linux-2.6.31.5/init/do_mounts.c 2009-11-07 13:52:17.000000000 +0100 -@@ -176,16 +176,8 @@ +--- a/init/do_mounts.c ++++ b/init/do_mounts.c +@@ -176,16 +176,8 @@ static int __init fs_names_setup(char *s return 1; } @@ -108,7 +117,7 @@ Index: linux-2.6.31.5/init/do_mounts.c static void __init get_fs_names(char *page) { -@@ -366,23 +358,6 @@ +@@ -366,23 +358,6 @@ void __init prepare_namespace(void) { int is_floppy; @@ -132,10 +141,8 @@ Index: linux-2.6.31.5/init/do_mounts.c if (saved_root_name[0]) { root_device_name = saved_root_name; if (!strncmp(root_device_name, "mtd", 3) || -Index: linux-2.6.31.5/init/main.c -=================================================================== ---- linux-2.6.31.5.orig/init/main.c 2009-11-07 13:52:16.000000000 +0100 -+++ linux-2.6.31.5/init/main.c 2009-11-07 14:00:29.000000000 +0100 +--- a/init/main.c ++++ b/init/main.c @@ -79,6 +79,7 @@ #ifdef CONFIG_X86_LOCAL_APIC #include @@ -144,7 +151,7 @@ Index: linux-2.6.31.5/init/main.c static int kernel_init(void *); -@@ -784,12 +785,13 @@ +@@ -779,12 +780,13 @@ int do_one_initcall(initcall_t fn) extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[]; @@ -160,7 +167,7 @@ Index: linux-2.6.31.5/init/main.c do_one_initcall(*call); /* Make sure there is no pending stuff from the initcall sequence */ -@@ -812,7 +814,7 @@ +@@ -807,7 +809,7 @@ static void __init do_basic_setup(void) driver_init(); init_irq_proc(); do_ctors(); @@ -169,7 +176,7 @@ Index: linux-2.6.31.5/init/main.c } static void __init do_pre_smp_initcalls(void) -@@ -873,6 +875,13 @@ +@@ -868,6 +870,13 @@ static noinline int init_post(void) panic("No init found. Try passing init= option to kernel."); } @@ -183,7 +190,7 @@ Index: linux-2.6.31.5/init/main.c static int __init kernel_init(void * unused) { lock_kernel(); -@@ -917,7 +926,16 @@ +@@ -912,7 +921,16 @@ static int __init kernel_init(void * unu if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) { ramdisk_execute_command = NULL; @@ -195,8 +202,8 @@ Index: linux-2.6.31.5/init/main.c + } + while (driver_probe_done() != 0) + msleep(100); -+ md_run_setup(); + do_initcalls(__root_initcall_start, __root_initcall_end); ++ md_run_setup(); + prepare_namespace(); }