lkml.org 
[lkml]   [2010]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [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/

    \
     
     \ /
      Last update: 2010-10-21 22:19    [W:0.024 / U:32.440 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site