1. 30 8月, 2005 9 次提交
    • D
      [SPARC64]: Eliminate irq_cpustat_t. · d7ce78fd
      David S. Miller 提交于
      We can put the __softirq_pending mask in the cpudata,
      no need for the silly NR_CPUS array in kernel/softirq.c
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d7ce78fd
    • 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
    • D
      [SPARC64]: Make debugging spinlocks usable again. · 442464a5
      David S. Miller 提交于
      When the spinlock routines were moved out of line into
      kernel/spinlock.c this made it so that the debugging
      spinlocks record lock acquisition program counts in the
      kernel/spinlock.c functions not in their callers.
      This makes the debugging info kind of useless.
      
      So record the correct caller's program counter and
      now this feature is useful once more.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      442464a5
    • K
      [SPARC]: remove use of asm/segment.h · ca7c8d2c
      Kumar Gala 提交于
      Removed sparc architecture specific users of asm/segment.h and
      asm-sparc/segment.h itself
      Signed-off-by: NKumar Gala <kumar.gala@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ca7c8d2c
    • K
      [SPARC64]: remove use of asm/segment.h · 3d6364ab
      Kumar Gala 提交于
      Removed sparc64 architecture specific users of asm/segment.h and
      asm-sparc64/segment.h itself
      Signed-off-by: NKumar Gala <kumar.gala@freescale.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3d6364ab
    • D
      [SPARC64]: Revamp Spitfire error trap handling. · 6c52a96e
      David S. Miller 提交于
      Current uncorrectable error handling was poor enough
      that the processor could just loop taking the same
      trap over and over again.  Fix things up so that we
      at least get a log message and perhaps even some register
      state.
      
      In the process, much consolidation became possible,
      particularly with the correctable error handler.
      
      Prefix assembler and C function names with "spitfire"
      to indicate that these are for Ultra-I/II/IIi/IIe only.
      
      More work is needed to make these routines robust and
      featureful to the level of the Ultra-III error handlers.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6c52a96e
    • D
      [SPARC64]: Do not call winfix_dax blindly · bde4e4ee
      David S. Miller 提交于
      Verify we really are taking a data access exception trap, at TL1, from
      one of the window spill/fill handlers.
      
      Else call a new function, data_access_exception_tl1, to log the error.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bde4e4ee
    • D
      [SPARC64]: Fix trap state reading for instruction_access_exception. · 5ea68e02
      David S. Miller 提交于
      1) Read ASI_IMMU SFSR not ASI_DMMU.
      2) IMMU has no SFAR, read TPC instead
      3) Delete old and incorrect comment about the DTLB protection
         trap having a dependency on the SFSR contents in order to
         function correctly
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5ea68e02
    • 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
  2. 29 8月, 2005 31 次提交