Skip to content

Commit

Permalink
async: make async a command line option for now
Browse files Browse the repository at this point in the history
... and have it default off.
This does allow people to work with it for testing.

Signed-off-by: Arjan van de Ven <[email protected]>
  • Loading branch information
fenrus75 committed Jan 9, 2009
1 parent b32714b commit cdb80f6
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions kernel/async.c
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ static LIST_HEAD(async_pending);
static LIST_HEAD(async_running);
static DEFINE_SPINLOCK(async_lock);

static int async_enabled = 0;

struct async_entry {
struct list_head list;
async_cookie_t cookie;
Expand Down Expand Up @@ -169,7 +171,7 @@ static async_cookie_t __async_schedule(async_func_ptr *ptr, void *data, struct l
* If we're out of memory or if there's too much work
* pending already, we execute synchronously.
*/
if (!entry || atomic_read(&entry_count) > MAX_WORK) {
if (!async_enabled || !entry || atomic_read(&entry_count) > MAX_WORK) {
kfree(entry);
spin_lock_irqsave(&async_lock, flags);
newcookie = next_cookie++;
Expand Down Expand Up @@ -316,8 +318,18 @@ static int async_manager_thread(void *unused)

static int __init async_init(void)
{
kthread_run(async_manager_thread, NULL, "async/mgr");
if (async_enabled)
kthread_run(async_manager_thread, NULL, "async/mgr");
return 0;
}

static int __init setup_async(char *str)
{
async_enabled = 1;
return 1;
}

__setup("fastboot", setup_async);


core_initcall(async_init);

0 comments on commit cdb80f6

Please sign in to comment.