diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-02-22 14:05:19 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-02-22 14:05:19 -0500 |
commit | fc6fc7f1b1095b92d4834e69b385b91e412a7ce5 (patch) | |
tree | 2ad451d5dac4d460830536944cef1de93be36b2a /init | |
parent | ef1f87aa7ba6224bef1b750b3272ba281d8f43ed (diff) | |
parent | 770824bdc421ff58a64db608294323571c949f4c (diff) |
Merge branch 'linus' into x86/apic
Conflicts:
arch/x86/mach-default/setup.c
Semantic conflict resolution:
arch/x86/kernel/setup.c
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'init')
-rw-r--r-- | init/do_mounts.c | 13 | ||||
-rw-r--r-- | init/do_mounts_md.c | 5 |
2 files changed, 12 insertions, 6 deletions
diff --git a/init/do_mounts.c b/init/do_mounts.c index 708105e163df..8d4ff5afc1d8 100644 --- a/init/do_mounts.c +++ b/init/do_mounts.c | |||
@@ -370,10 +370,14 @@ void __init prepare_namespace(void) | |||
370 | ssleep(root_delay); | 370 | ssleep(root_delay); |
371 | } | 371 | } |
372 | 372 | ||
373 | /* wait for the known devices to complete their probing */ | 373 | /* |
374 | while (driver_probe_done() != 0) | 374 | * wait for the known devices to complete their probing |
375 | msleep(100); | 375 | * |
376 | async_synchronize_full(); | 376 | * Note: this is a potential source of long boot delays. |
377 | * For example, it is not atypical to wait 5 seconds here | ||
378 | * for the touchpad of a laptop to initialize. | ||
379 | */ | ||
380 | wait_for_device_probe(); | ||
377 | 381 | ||
378 | md_run_setup(); | 382 | md_run_setup(); |
379 | 383 | ||
@@ -399,6 +403,7 @@ void __init prepare_namespace(void) | |||
399 | while (driver_probe_done() != 0 || | 403 | while (driver_probe_done() != 0 || |
400 | (ROOT_DEV = name_to_dev_t(saved_root_name)) == 0) | 404 | (ROOT_DEV = name_to_dev_t(saved_root_name)) == 0) |
401 | msleep(100); | 405 | msleep(100); |
406 | async_synchronize_full(); | ||
402 | } | 407 | } |
403 | 408 | ||
404 | is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR; | 409 | is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR; |
diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c index ff95e3192884..9bdddbcb3d6a 100644 --- a/init/do_mounts_md.c +++ b/init/do_mounts_md.c | |||
@@ -281,8 +281,9 @@ static void __init autodetect_raid(void) | |||
281 | */ | 281 | */ |
282 | printk(KERN_INFO "md: Waiting for all devices to be available before autodetect\n"); | 282 | printk(KERN_INFO "md: Waiting for all devices to be available before autodetect\n"); |
283 | printk(KERN_INFO "md: If you don't use raid, use raid=noautodetect\n"); | 283 | printk(KERN_INFO "md: If you don't use raid, use raid=noautodetect\n"); |
284 | while (driver_probe_done() < 0) | 284 | |
285 | msleep(100); | 285 | wait_for_device_probe(); |
286 | |||
286 | fd = sys_open("/dev/md0", 0, 0); | 287 | fd = sys_open("/dev/md0", 0, 0); |
287 | if (fd >= 0) { | 288 | if (fd >= 0) { |
288 | sys_ioctl(fd, RAID_AUTORUN, raid_autopart); | 289 | sys_ioctl(fd, RAID_AUTORUN, raid_autopart); |