x86: tls prevent_tail_call
authorRoland McGrath <roland@redhat.com>
Tue, 26 Feb 2008 21:00:18 +0000 (13:00 -0800)
committerIngo Molnar <mingo@elte.hu>
Fri, 29 Feb 2008 17:55:39 +0000 (18:55 +0100)
commit3d00daf44654dc75629caf42816ac4e293658724
tree82775510cc3975ef28e800b6d0ea4032cbf86b79
parentc0f4133b8f70769bc8dda977feb9a29109d6ccca
x86: tls prevent_tail_call

Fix a kernel bug (vmware boot problem) reported by Tomasz Grobelny,
which occurs with certain .config variants and gccs.

The x86 TLS cleanup in commit efd1ca52d04d2f6df337a3332cee56cd60e6d4c4
made the sys_set_thread_area and sys_get_thread_area functions ripe for
tail call optimization.  If the compiler chooses to use it for them, it
can clobber the user trap frame because these are asmlinkage functions.

Reported-by: Tomasz Grobelny <tomasz@grobelny.oswiecenia.net>
Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/tls.c