cachemiss_thread should explicitly return 0 or error instead of task_ret_reg(current) (which is -ENOSYS anyway) because async_thread_helper is careful to put the return value in eax anyway.
On x86_64, it looks like async_child_rip is similarly careful. Signed-off-by: Jeff Dike <[EMAIL PROTECTED]> -- kernel/async.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) Index: linux-2.6/kernel/async.c =================================================================== --- linux-2.6.orig/kernel/async.c 2007-05-29 20:11:11.000000000 -0400 +++ linux-2.6/kernel/async.c 2007-05-31 14:12:49.000000000 -0400 @@ -575,7 +575,7 @@ static long cachemiss_thread(void *data) struct task_struct *t = current; struct async_head *ah = args->ah; struct async_thread *at; - int ret; + int ret = 0; at = &t->__at; async_thread_init(t, at, ah); @@ -607,7 +607,7 @@ static long cachemiss_thread(void *data) complete(&ah->start_done); async_cachemiss_loop(at, ah, t); - return task_ret_reg(t); + return ret; } /** - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/