Re: [patch 5/3] fastboot: sync the async execution before late_initcall and move level 6s (sync) first

Rene Herman
2008-07-29T21:09:51Z

On 29-07-08 23:04, Arjan van de Ven wrote:

> On Tue, 29 Jul 2008 23:00:29 +0200
>> Isn'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)

Fair enough. By the way:

> @@ -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);

After this patch, there are now 2 flush_workqueue(async_init_wq) calls
in do_initcalls. Should the other one remain as well?

Rene.