X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=kernel%2Fstop_machine.c;h=24e8ceacc388cd14e9ff4ae87fcc47d6f8d96b2b;hb=05a8c1cbfe368df8c0d4eff710c370d2aa10245a;hp=8aff79d90ddccd3647cb884664920e45c609fe72;hpb=f8aea20018aefa51bf818914c9c1ef9006353dbb;p=linux-2.6-omap-h63xx.git diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index 8aff79d90dd..24e8ceacc38 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -112,7 +112,7 @@ static int chill(void *unused) int __stop_machine(int (*fn)(void *), void *data, const cpumask_t *cpus) { struct work_struct *sm_work; - int i; + int i, ret; /* Set up initial state. */ mutex_lock(&lock); @@ -137,8 +137,9 @@ int __stop_machine(int (*fn)(void *), void *data, const cpumask_t *cpus) /* This will release the thread on our CPU. */ put_cpu(); flush_workqueue(stop_machine_wq); + ret = active.fnret; mutex_unlock(&lock); - return active.fnret; + return ret; } int stop_machine(int (*fn)(void *), void *data, const cpumask_t *cpus) @@ -160,4 +161,4 @@ static int __init stop_machine_init(void) stop_machine_work = alloc_percpu(struct work_struct); return 0; } -early_initcall(stop_machine_init); +core_initcall(stop_machine_init);