Commit 7fe977da authored by Jan Beulich's avatar Jan Beulich Committed by Ingo Molnar

i386: Make kernel_execve() suitable for stack unwinding

The explicit saving and restoring of %ebx was confusing stack
unwind data consumers, and it is plain unnecessary to do this
within the asm(), since that was only introduced for PIC user
mode consumers of the original _syscall3() macro this was
derived from.
Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
Cc: Arnd Bergmann <arnd@arndb.de>
LKML-Reference: <4C7FBC660200007800013F95@vpn.id2.novell.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 2bfc96a1
...@@ -33,8 +33,8 @@ int kernel_execve(const char *filename, ...@@ -33,8 +33,8 @@ int kernel_execve(const char *filename,
const char *const envp[]) const char *const envp[])
{ {
long __res; long __res;
asm volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" asm volatile ("int $0x80"
: "=a" (__res) : "=a" (__res)
: "0" (__NR_execve), "ri" (filename), "c" (argv), "d" (envp) : "memory"); : "0" (__NR_execve), "b" (filename), "c" (argv), "d" (envp) : "memory");
return __res; return __res;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment