lkml.org 
[lkml]   [2011]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH v7 3.2-rc2 10/30] x86: Set instruction pointer.

    Provides x86 specific routine to set the instruction pointer to the
    given address.

    Signed-off-by: Jim Keniston <jkenisto@us.ibm.com>
    Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    ---
    arch/x86/include/asm/uprobes.h | 1 +
    arch/x86/kernel/uprobes.c | 10 ++++++++++
    2 files changed, 11 insertions(+), 0 deletions(-)

    diff --git a/arch/x86/include/asm/uprobes.h b/arch/x86/include/asm/uprobes.h
    index f0b4b2b..509c023 100644
    --- a/arch/x86/include/asm/uprobes.h
    +++ b/arch/x86/include/asm/uprobes.h
    @@ -39,4 +39,5 @@ struct uprobe_arch_info {};
    #endif
    struct uprobe;
    extern int analyze_insn(struct mm_struct *mm, struct uprobe *uprobe);
    +extern void set_instruction_pointer(struct pt_regs *regs, unsigned long vaddr);
    #endif /* _ASM_UPROBES_H */
    diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
    index 0be7e67..67b926f 100644
    --- a/arch/x86/kernel/uprobes.c
    +++ b/arch/x86/kernel/uprobes.c
    @@ -397,3 +397,13 @@ int analyze_insn(struct mm_struct *mm, struct uprobe *uprobe)
    prepare_fixups(uprobe, &insn);
    return 0;
    }
    +
    +/*
    + * @reg: reflects the saved state of the task
    + * @vaddr: the virtual address to jump to.
    + * Return 0 on success or a -ve number on error.
    + */
    +void set_instruction_pointer(struct pt_regs *regs, unsigned long vaddr)
    +{
    + regs->ip = vaddr;
    +}


    \
     
     \ /
      Last update: 2011-11-18 12:37    [W:0.020 / U:31.428 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site