16 Jul, 2008

1 commit

  • AMD only supports "syscall" from 32-bit compat usermode.
    Intel and Centaur(?) only support "sysenter" from 32-bit compat usermode.

    Set the X86 feature bits accordingly, and set up the vdso in
    accordance with those bits. On the offchance we run on in a 64-bit
    environment which supports neither syscall nor sysenter from 32-bit
    mode, then fall back to the int $0x80 vdso.

    Signed-off-by: Jeremy Fitzhardinge
    Signed-off-by: H. Peter Anvin

    Jeremy Fitzhardinge
     

30 Jan, 2008

2 commits

  • This makes x86_64's ia32 emulation support share the sources used in the
    32-bit kernel for the 32-bit vDSO and much of its setup code.

    The 32-bit vDSO mapping now behaves the same on x86_64 as on native 32-bit.
    The abi.syscall32 sysctl on x86_64 now takes the same values that
    vm.vdso_enabled takes on the 32-bit kernel. That is, 1 means a randomized
    vDSO location, 2 means the fixed old address. The CONFIG_COMPAT_VDSO
    option is now available to make this the default setting, the same meaning
    it has for the 32-bit kernel. (This does not affect the 64-bit vDSO.)

    The argument vdso32=[012] can be used on both 32-bit and 64-bit kernels to
    set this paramter at boot time. The vdso=[012] argument still does this
    same thing on the 32-bit kernel.

    Signed-off-by: Roland McGrath
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Roland McGrath
     
  • This makes the i386 kernel use the new vDSO build in arch/x86/vdso/vdso32/
    to replace the old one from arch/x86/kernel/.

    Signed-off-by: Roland McGrath
    Cc: Andrew Morton
    Cc: Linus Torvalds
    Signed-off-by: Thomas Gleixner
    Signed-off-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Roland McGrath