async: Fix running list handling.

async_schedule() should pass in async_running as the running
list, and run_one_entry() should put the entry to be run on
the provided running list instead of always on the generic one.

Reported-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>

authored by Cornelia Huck and committed by Arjan van de Ven 7a89bbc7 e83102ca

+2 -2
+2 -2
kernel/async.c
··· 133 133 134 134 /* 2) move it to the running queue */ 135 135 list_del(&entry->list); 136 - list_add_tail(&entry->list, &async_running); 136 + list_add_tail(&entry->list, entry->running); 137 137 spin_unlock_irqrestore(&async_lock, flags); 138 138 139 139 /* 3) run it (and print duration)*/ ··· 210 210 211 211 async_cookie_t async_schedule(async_func_ptr *ptr, void *data) 212 212 { 213 - return __async_schedule(ptr, data, &async_pending); 213 + return __async_schedule(ptr, data, &async_running); 214 214 } 215 215 EXPORT_SYMBOL_GPL(async_schedule); 216 216