Messages in this thread | | | From | Linus Torvalds <> | Date | Thu, 21 Oct 2010 13:16:10 -0700 | Subject | Re: [GIT PULL] x86/asm changes for v2.6.37 |
| |
On Thu, Oct 21, 2010 at 6:21 AM, Ingo Molnar <mingo@elte.hu> wrote: > > Jan Beulich (1): > i386: Make kernel_execve() suitable for stack unwinding > > long __res; > - asm volatile ("push %%ebx ; movl %2,%%ebx ; int $0x80 ; pop %%ebx" > + asm volatile ("int $0x80" > : "=a" (__res) > - : "0" (__NR_execve), "ri" (filename), "c" (argv), "d" (envp) : "memory"); > + : "0" (__NR_execve), "b" (filename), "c" (argv), "d" (envp) : "memory"); > return __res; > }
I pulled this, but there's a reason we used to do it that way - gcc has had bugs with inline asm changing %ebx due to some bad interaction with using it as the GOT base register for position-independent code or something.
So I hope those are all solved, and I guess we use -fPIC only for some early boot code. But in case this is ever used in some environment that is PIC (the vsyscall page?) we need to worry about gcc interactions.
Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |