Re: [patch 1/3] fastboot: Create a "asynchronous" initlevel

From: Rene Herman
Date: Sat Jul 19 2008 - 03:52:00 EST


On 19-07-08 00:16, Arjan van de Ven wrote:

+static void __init do_initcalls(void)
+{
+ initcall_t *call;
+ static DECLARE_WORK(async_work, do_async_initcalls);
+ int phase = 0; /* 0 = levels 0 - 6, 1 = level 6a, 2 = after level 6a */
+
+ async_init_wq = create_singlethread_workqueue("kasyncinit");
+
+ for (call = __initcall_start; call < __initcall_end; call++) {
+ if (phase == 0 && call >= __async_initcall_start) {
+ phase = 1;
+ queue_work(async_init_wq, &async_work);
+ }
+ if (phase == 1 && call >= __async_initcall_end)
+ phase = 2;
+ if (phase != 1)
+ do_one_initcall(*call);
+ }

I'm not sure about this comment, being not very sure about the semantics of late_initcall but shouldn't late_initcall (level 7) wait for 6s to have completed?

Rene.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/