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; } /** ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel