lkml.org 
[lkml]   [2008]   [Jul]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 4/3] fastboot: hold the BKL over the async init call sequence
    From: Arjan van de Ven <arjan@linux.intel.com>
    Subject: [PATCH] fastboot: hold the BKL over the async init call sequence

    Regular init calls are called with the BKL held; make sure
    the async init calls are also called with the BKL held.
    While this reduces parallelism a little, it does provide
    lock-for-lock compatibility. The hit to prallelism isn't too
    bad, most of the init calls are done immediately or actually
    block for their delays.

    Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
    ---
    init/main.c | 6 ++++++
    1 files changed, 6 insertions(+), 0 deletions(-)

    diff --git a/init/main.c b/init/main.c
    index bf79b83..dcb2c32 100644
    --- a/init/main.c
    +++ b/init/main.c
    @@ -746,8 +746,14 @@ static void __init do_async_initcalls(struct work_struct *dummy)
    {
    initcall_t *call;

    + /*
    + * For compatibility with normal init calls... take the BKL
    + * not pretty, not desirable, but compatibility first
    + */
    + lock_kernel();
    for (call = __async_initcall_start; call < __async_initcall_end; call++)
    do_one_initcall(*call);
    + unlock_kernel();
    }

    static struct workqueue_struct *async_init_wq;
    --
    1.5.5.1


    \
     
     \ /
      Last update: 2008-07-20 18:01    [W:0.024 / U:30.244 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site