diff --git a/kernel/async.c b/kernel/async.c index 968ef94..8c553ce 100644 --- a/kernel/async.c +++ b/kernel/async.c @@ -68,6 +68,7 @@ static LIST_HEAD(async_running); static DEFINE_SPINLOCK(async_lock); static int async_enabled = 0; +static int async_disabled; struct async_entry { struct list_head list; @@ -388,6 +389,11 @@ static int async_manager_thread(void *unused) static int __init async_init(void) { + if (async_disabled) { + async_enabled = 0; + return 0; + } + async_enabled = !IS_ERR(kthread_run(async_manager_thread, NULL, "async/mgr")); @@ -395,4 +401,12 @@ static int __init async_init(void) return 0; } +static int __init setup_async(char *str) +{ + async_disabled = 1; + return 1; +} + +__setup("slowboot", setup_async); + core_initcall(async_init);