Tsk, forgot the cc. ---------- Forwarded message ---------- Date: Thu, 21 Sep 2000 23:59:09 +0100 (BST) From: Matthew Kirkwood <[EMAIL PROTECTED]> To: Linus Torvalds <[EMAIL PROTECTED]> Subject: [PATCH] RAID autorun fix Hi, The attached diff makes RAID autorun work for me. It transpired that the failed initialisation was not an init order thing, but more related to that fact that md.c wasn't using the new init scheme at all. I'm not 100% sure that the last bit (which affects initrds which I don't use) is correct, so you may want to leave that as-is. Cheers, Matthew. diff -ruN linux-2.4.0-test9pre5/drivers/block/ll_rw_blk.c linux/drivers/block/ll_rw_blk.c --- linux-2.4.0-test9pre5/drivers/block/ll_rw_blk.c Thu Sep 21 23:47:12 2000 +++ linux/drivers/block/ll_rw_blk.c Thu Sep 21 22:00:31 2000 @@ -1130,9 +1130,6 @@ #ifdef CONFIG_SJCD sjcd_init(); #endif CONFIG_SJCD -#ifdef CONFIG_BLK_DEV_MD - md_init(); -#endif CONFIG_BLK_DEV_MD #ifdef CONFIG_APBLOCK ap_init(); #endif diff -ruN linux-2.4.0-test9pre5/drivers/md/md.c linux/drivers/md/md.c --- linux-2.4.0-test9pre5/drivers/md/md.c Thu Sep 21 23:47:12 2000 +++ linux/drivers/md/md.c Thu Sep 21 22:44:25 2000 @@ -34,6 +34,8 @@ #include <linux/raid/xor.h> #include <linux/devfs_fs_kernel.h> +#include <linux/init.h> + #ifdef CONFIG_KMOD #include <linux/kmod.h> #endif @@ -3844,6 +3846,11 @@ free_device_names(); } +#endif + +__initcall(md_init); +#ifdef CONFIG_AUTODETECT_RAID +__initcall(md_run_setup); #endif MD_EXPORT_SYMBOL(md_size); diff -ruN linux-2.4.0-test9pre5/fs/partitions/check.c linux/fs/partitions/check.c --- linux-2.4.0-test9pre5/fs/partitions/check.c Sun Sep 10 12:36:06 2000 +++ linux/fs/partitions/check.c Thu Sep 21 22:42:22 2000 @@ -439,9 +439,6 @@ #endif rd_load(); #endif -#ifdef CONFIG_BLK_DEV_MD - md_run_setup(); -#endif return 0; } diff -ruN linux-2.4.0-test9pre5/init/main.c linux/init/main.c --- linux-2.4.0-test9pre5/init/main.c Sun Sep 10 12:36:06 2000 +++ linux/init/main.c Thu Sep 21 22:42:02 2000 @@ -727,9 +727,6 @@ while (pid != wait(&i)); if (MAJOR(real_root_dev) != RAMDISK_MAJOR || MINOR(real_root_dev) != 0) { -#ifdef CONFIG_BLK_DEV_MD - md_run_setup(); -#endif error = change_root(real_root_dev,"/initrd"); if (error) printk(KERN_ERR "Change root to /initrd: " - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] Please read the FAQ at http://www.tux.org/lkml/