1. 08 5月, 2008 1 次提交
    • D
      sparc: Fix SA_ONSTACK signal handling. · dc5dc7e6
      David S. Miller 提交于
      We need to be more liberal about the alignment of the buffer given to
      us by sigaltstack().  The user should not need to be mindful of all of
      the alignment constraints we have for the stack frame.
      
      This mirrors how we handle this situation in clone() as well.
      
      Also, we align the stack even in non-SA_ONSTACK cases so that signals
      due to bad stack alignment can be delivered properly.  This makes such
      errors easier to debug and recover from.
      
      Finally, add the sanity check x86 has to make sure we won't overflow
      the signal stack.
      
      This fixes glibc testcases nptl/tst-cancel20.c and
      nptl/tst-cancelx20.c
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dc5dc7e6
  2. 02 5月, 2008 1 次提交
    • D
      sparc64: Fix syscall restart, for real... · 2678fefe
      David S. Miller 提交于
      The change I put into copy_thread() just papered over the real
      problem.
      
      When we are looking to see if we should do a syscall restart, when
      deliverying a signal, we should only interpret the syscall return
      value as an error if the carry condition code(s) are set.
      
      Otherwise it's a success return.
      
      Also, sigreturn paths should do a pt_regs_clear_trap_type().
      
      It turns out that doing a syscall restart when returning from a fork()
      does and should happen, from time to time.  Even if copy_thread()
      returns success, copy_process() can still unwind and signal
      -ERESTARTNOINTR in the parent.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2678fefe
  3. 27 4月, 2008 1 次提交
    • D
      sparc: Remove old style signal frame support. · 5526b7e4
      David S. Miller 提交于
      Back around the same time we were bootstrapping the first 32-bit sparc
      Linux kernel with a SunOS userland, we made the signal frame match
      that of SunOS.
      
      By the time we even started putting together a native Linux userland
      for 32-bit Sparc we realized this layout wasn't sufficient for Linux's
      needs.
      
      Therefore we changed the layout, yet kept support for the old style
      signal frame layout in there.  The detection mechanism is that we had
      sys_sigaction() start passing in a negative signal number to indicate
      "new style signal frames please".
      
      Anyways, no binaries exist in the world that use the old stuff.  In
      fact, I bet Jakub Jelinek and myself are the only two people who ever
      had such binaries to be honest.
      
      So let's get rid of this stuff.
      
      I added an assertion using WARN_ON_ONCE() that makes sure 32-bit
      applications are passing in that negative signal number still.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5526b7e4
  4. 24 4月, 2008 1 次提交
  5. 22 4月, 2008 1 次提交
  6. 09 5月, 2007 1 次提交
  7. 03 10月, 2006 1 次提交
  8. 19 1月, 2006 1 次提交
  9. 08 11月, 2005 1 次提交
  10. 30 8月, 2005 2 次提交
    • D
      [SPARC64]: More fully work around Spitfire Errata 51. · 4f07118f
      David S. Miller 提交于
      It appears that a memory barrier soon after a mispredicted
      branch, not just in the delay slot, can cause the hang
      condition of this cpu errata.
      
      So move them out-of-line, and explicitly put them into
      a "branch always, predict taken" delay slot which should
      fully kill this problem.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4f07118f
    • S
      [PATCH] convert signal handling of NODEFER to act like other Unix boxes. · 69be8f18
      Steven Rostedt 提交于
      It has been reported that the way Linux handles NODEFER for signals is
      not consistent with the way other Unix boxes handle it.  I've written a
      program to test the behavior of how this flag affects signals and had
      several reports from people who ran this on various Unix boxes,
      confirming that Linux seems to be unique on the way this is handled.
      
      The way NODEFER affects signals on other Unix boxes is as follows:
      
      1) If NODEFER is set, other signals in sa_mask are still blocked.
      
      2) If NODEFER is set and the signal is in sa_mask, then the signal is
      still blocked. (Note: this is the behavior of all tested but Linux _and_
      NetBSD 2.0 *).
      
      The way NODEFER affects signals on Linux:
      
      1) If NODEFER is set, other signals are _not_ blocked regardless of
      sa_mask (Even NetBSD doesn't do this).
      
      2) If NODEFER is set and the signal is in sa_mask, then the signal being
      handled is not blocked.
      
      The patch converts signal handling in all current Linux architectures to
      the way most Unix boxes work.
      
      Unix boxes that were tested:  DU4, AIX 5.2, Irix 6.5, NetBSD 2.0, SFU
      3.5 on WinXP, AIX 5.3, Mac OSX, and of course Linux 2.6.13-rcX.
      
      * NetBSD was the only other Unix to behave like Linux on point #2. The
      main concern was brought up by point #1 which even NetBSD isn't like
      Linux.  So with this patch, we leave NetBSD as the lonely one that
      behaves differently here with #2.
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      69be8f18
  11. 24 6月, 2005 1 次提交
  12. 18 4月, 2005 1 次提交
  13. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4