lkml.org 
[lkml]   [2005]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 1/4] Kprobes - Enable funcions only for required arch
    [PATCH] Kprobes - Enable funcions only for required arch

    Kernel/kprobes.c defines get_insn_slot() and free_insn_slot()
    which are currently required _only_ for x86_64 and powerpc (which has
    no-exec support).

    FYI, get{free}_insn_slot() functions manages the memory
    page which is mapped as executable, required for instruction
    emulation.

    This patch moves those two functions under
    __ARCH_WANT_KPROBES_INSN_SLOT and defines
    __ARCH_WANT_KPROBES_INSN_SLOT in arch specific
    kprobes.h file.

    Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
    ------------------------------------------------------------------

    include/asm-powerpc/kprobes.h | 2 ++
    include/asm-x86_64/kprobes.h | 2 ++
    kernel/kprobes.c | 2 ++
    3 files changed, 6 insertions(+)

    Index: linux-2.6.15-rc5-mm2/include/asm-powerpc/kprobes.h
    ===================================================================
    --- linux-2.6.15-rc5-mm2.orig/include/asm-powerpc/kprobes.h
    +++ linux-2.6.15-rc5-mm2/include/asm-powerpc/kprobes.h
    @@ -29,6 +29,8 @@
    #include <linux/ptrace.h>
    #include <linux/percpu.h>

    +#define __ARCH_WANT_KPROBES_INSN_SLOT
    +
    struct pt_regs;

    typedef unsigned int kprobe_opcode_t;
    Index: linux-2.6.15-rc5-mm2/include/asm-x86_64/kprobes.h
    ===================================================================
    --- linux-2.6.15-rc5-mm2.orig/include/asm-x86_64/kprobes.h
    +++ linux-2.6.15-rc5-mm2/include/asm-x86_64/kprobes.h
    @@ -27,6 +27,8 @@
    #include <linux/ptrace.h>
    #include <linux/percpu.h>

    +#define __ARCH_WANT_KPROBES_INSN_SLOT
    +
    struct pt_regs;

    typedef u8 kprobe_opcode_t;
    Index: linux-2.6.15-rc5-mm2/kernel/kprobes.c
    ===================================================================
    --- linux-2.6.15-rc5-mm2.orig/kernel/kprobes.c
    +++ linux-2.6.15-rc5-mm2/kernel/kprobes.c
    @@ -52,6 +52,7 @@ static DEFINE_SPINLOCK(kprobe_lock); /*
    DEFINE_SPINLOCK(kretprobe_lock); /* Protects kretprobe_inst_table */
    static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL;

    +#ifdef __ARCH_WANT_KPROBES_INSN_SLOT
    /*
    * kprobe->ainsn.insn points to the copy of the instruction to be
    * single-stepped. x86_64, POWER4 and above have no-exec support and
    @@ -151,6 +152,7 @@ void __kprobes free_insn_slot(kprobe_opc
    }
    }
    }
    +#endif

    /* We have preemption disabled.. so it is safe to use __ versions */
    static inline void set_kprobe_instance(struct kprobe *kp)
    --

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-12-13 22:57    [W:3.795 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site