1. 20 1月, 2013 2 次提交
  2. 26 12月, 2012 6 次提交
    • A
      x32: fix sigtimedwait · b2ddedcd
      Al Viro 提交于
      It needs 64bit timespec.  As it is, we end up truncating the timeout
      to whole seconds; usually it doesn't matter, but for having all
      sub-second timeouts truncated to one jiffy is visibly wrong.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b2ddedcd
    • A
      x32: fix waitid() · a566c288
      Al Viro 提交于
      It needs 64bit rusage and 32bit siginfo.  glibc never calls it with
      non-NULL rusage pointer, or we would've seen breakage already...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      a566c288
    • A
      switch compat_sys_wait4() and compat_sys_waitid() to COMPAT_SYSCALL_DEFINE · 8d9807b1
      Al Viro 提交于
      Strictly speaking, ppc64 needs it for C ABI compliance.  Realistically
      I would be very surprised if e.g. passing 0xffffffff as 'options'
      argument to waitid() from 32bit task would cause problems, but yes,
      it puts us into undefined behaviour territory.  ppc64 expects int
      argument to be passed in 64bit register with bits 31..63 containing
      the same value.  SYSCALL_DEFINE on ppc provides a wrapper that normalizes
      the value passed from userland; so does COMPAT_SYSCALL_DEFINE.  Plain
      declaration of compat_sys_something() with an int argument obviously
      doesn't.  Again, for wait4 and waitid I would be extremely surprised
      if gcc started to produce code depending on that value having been
      properly sign-extended - the argument(s) in question end up passed
      blindly to sys_wait4 and sys_waitid resp. and normalization for native
      syscalls takes care of their use there.  Still, better to use
      COMPAT_SYSCALL_DEFINE here than worry about nasal daemons...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      8d9807b1
    • A
      switch compat_sys_sigaltstack() to COMPAT_SYSCALL_DEFINE · 90228fc1
      Al Viro 提交于
      Makes sigaltstack conversion easier to split into per-architecture
      parts.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      90228fc1
    • V
      CONFIG_GENERIC_SIGALTSTACK build breakage with asm-generic/syscalls.h · f13a3664
      Vineet Gupta 提交于
      Saner transition plan for GENERIC_SIGALTSTACK conversion - instead of
      adding #define sys_sigaltstack sys_sigaltstack in asm/syscalls.h of
      architecture if it's pulls asm-generic/syscalls.h, only to have those
      defines removed once all architectures are converted, make the
      declaration in said asm-generic/syscalls.h conditional on the lack
      of GENERIC_SIGALTSTACK.  Less messy in intermediate stages that way...
      Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
      Acked-by: NAl Viro <viro@zeniv.linux.org.uk>
      Cc: james.hogan@imgtec.com
      Cc: arnd@arndb.de
      Cc: torvalds@linux-foundation.org
      Cc: linux-kernel@vger.kernel.org
      Cc: linux-arch@vger.kernel.org
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      f13a3664
    • V
      Ensure that kernel_init_freeable() is not inlined into non __init code · f80b0c90
      Vineet Gupta 提交于
      Commit d6b21238 "make sure that we always have a return path from
      kernel_execve()" reshuffled kernel_init()/init_post() to ensure that
      kernel_execve() has a caller to return to.
      
      It removed __init annotation for kernel_init() and introduced/calls a
      new routine kernel_init_freeable(). Latter however is inlined by any
      reasonable compiler (ARC gcc 4.4 in this case), causing slight code
      bloat.
      
      This patch forces kernel_init_freeable() as noinline reducing the .text
      
      bloat-o-meter vmlinux vmlinux_new
      add/remove: 1/0 grow/shrink: 0/1 up/down: 374/-334 (40)
      function                        old     new   delta
      kernel_init_freeable              -     374    +374 (.init.text)
      kernel_init                     628     294    -334 (.text)
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      f80b0c90
  3. 22 12月, 2012 32 次提交