On Tue, 29 Jul 2008 23:00:29 +0200Isn't this a bit confusing? All the other sync levels are directly
after their respective levels. I can see why you want another level
now, but shouldn't that mean late_initcall now wants to be 8,
device_initcall 7 and your new 6s just 6 (device_core_initcall or
something...)?
yeah it is.. but nobody is using them
I'll make a note to clean this up
(by removing the unused ones)
@@ -775,6 +776,11 @@ static void __init do_initcalls(void)
}
if (phase == 1 && call >= __async_initcall_end)
phase = 2;
+ if (phase == 2 && call >= __device_initcall_end) {
+ phase = 3;
+ /* make sure all async work is done before level 7 */
+ flush_workqueue(async_init_wq);
+ }
if (phase != 1)
do_one_initcall(*call);