x86-64: make compat_start_thread() match start_thread()
authorH. Peter Anvin <hpa@zytor.com>
Fri, 9 Oct 2009 01:02:54 +0000 (18:02 -0700)
committerH. Peter Anvin <hpa@zytor.com>
Fri, 9 Oct 2009 23:26:38 +0000 (16:26 -0700)
commita6f05a6a0a1713d5b019f096799d49226807d3df
tree0f6e0527309355796234f095ec9103a7f1fac5c5
parent36a07902c2134649c4af7f07980413ffb1a56085
x86-64: make compat_start_thread() match start_thread()

For no real good reason, compat_start_thread() was embedded inline in
<asm/elf.h> whereas the native start_thread() lives in process_*.c.
Move compat_start_thread() to process_64.c, remove gratuitious
differences, and fix a few items which mostly look like bit rot.

In particular, compat_start_thread() didn't do free_thread_xstate(),
which means it was hanging on to the xstate store area even when it
was not needed.  It was also not setting old_rsp, but it looks like
that generally shouldn't matter for a 32-bit process.

Note: compat_start_thread *has* to be a macro, since it is tested with
start_thread_ia32() as the out of line function name.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Acked-by: Suresh Siddha <suresh.b.siddha@intel.com>
arch/x86/include/asm/elf.h
arch/x86/kernel/process_64.c