1. 10 12月, 2006 1 次提交
    • D
      [SPARC64]: Fix several kprobes bugs. · f0882589
      David S. Miller 提交于
      - relbranch_fixup(), for non-branches, would end up setting
        regs->tnpc incorrectly, in fact it would set it equal to
        regs->tpc which would cause that instruction to execute twice
      
        Also, if this is not a PC-relative branch, we should just
        leave regs->tnpc as-is.  This covers cases like 'jmpl' which
        branch to absolute values.
      
      - To be absolutely %100 safe, we need to flush the instruction
        cache for all assignments to kprobe->ainsn.insn[], including
        cases like add_aggr_kprobe()
      
      - prev_kprobe's status field needs to be 'unsigned long' to match
        the type of the value it is saving
      
      - jprobes were totally broken:
        = jprobe_return() can run in the stack frame of the jprobe handler,
          or in an even deeper stack frame, thus we'll be in the wrong
          register window than the one from the original probe state.
      
          So unwind using 'restore' instructions, if necessary, right
          before we do the jprobe_return() breakpoint trap.
      
        = There is no reason to save/restore the register window saved
          at %sp at jprobe trigger time.  Those registers cannot be
          modified by the jprobe handler.  Also, this code was saving
          and restoring "sizeof (struct sparc_stackf)" bytes.  Depending
          upon the caller, this could clobber unrelated stack frame
          pieces if there is only a basic 128-byte register window
          stored on the stack, without the argument save area.
      
          So just saving and restoring struct pt_regs is sufficient.
      
        = Kill the "jprobe_saved_esp", totally unused.
      
          Also, delete "jprobe_saved_regs_location", with the stack frame
          unwind now done explicitly by jprobe_return(), this check is
          superfluous.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f0882589
  2. 01 7月, 2006 1 次提交
  3. 20 4月, 2006 1 次提交
  4. 27 3月, 2006 2 次提交
  5. 12 1月, 2006 1 次提交
  6. 11 1月, 2006 2 次提交
  7. 13 12月, 2005 1 次提交
  8. 07 11月, 2005 4 次提交
  9. 08 9月, 2005 1 次提交
  10. 06 7月, 2005 1 次提交
  11. 24 6月, 2005 2 次提交
    • P
      [PATCH] kprobes: Temporary disarming of reentrant probe for sparc64 · e539c233
      Prasanna S Panchamukhi 提交于
      This patch includes sparc64 architecture specific changes to support temporary
      disarming on reentrancy of probes.
      Signed-of-by: NPrasanna S Panchamukhi <prasanna@in.ibm.com>
      Cc: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      e539c233
    • R
      [PATCH] Move kprobe [dis]arming into arch specific code · 7e1048b1
      Rusty Lynch 提交于
      The architecture independent code of the current kprobes implementation is
      arming and disarming kprobes at registration time.  The problem is that the
      code is assuming that arming and disarming is a just done by a simple write
      of some magic value to an address.  This is problematic for ia64 where our
      instructions look more like structures, and we can not insert break points
      by just doing something like:
      
      *p->addr = BREAKPOINT_INSTRUCTION;
      
      The following patch to 2.6.12-rc4-mm2 adds two new architecture dependent
      functions:
      
           * void arch_arm_kprobe(struct kprobe *p)
           * void arch_disarm_kprobe(struct kprobe *p)
      
      and then adds the new functions for each of the architectures that already
      implement kprobes (spar64/ppc64/i386/x86_64).
      
      I thought arch_[dis]arm_kprobe was the most descriptive of what was really
      happening, but each of the architectures already had a disarm_kprobe()
      function that was really a "disarm and do some other clean-up items as
      needed when you stumble across a recursive kprobe." So...  I took the
      liberty of changing the code that was calling disarm_kprobe() to call
      arch_disarm_kprobe(), and then do the cleanup in the block of code dealing
      with the recursive kprobe case.
      
      So far this patch as been tested on i386, x86_64, and ppc64, but still
      needs to be tested in sparc64.
      Signed-off-by: NRusty Lynch <rusty.lynch@intel.com>
      Signed-off-by: NAnil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7e1048b1
  12. 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