|
@@ -77,7 +77,7 @@ found:
|
|
|
}
|
|
|
|
|
|
/* Insert a move instruction which sets a pointer to eax/rdi (1st arg). */
|
|
|
-static void __kprobes synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
|
|
|
+static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
|
|
|
{
|
|
|
#ifdef CONFIG_X86_64
|
|
|
*addr++ = 0x48;
|
|
@@ -169,7 +169,7 @@ static void __kprobes optimized_callback(struct optimized_kprobe *op, struct pt_
|
|
|
local_irq_restore(flags);
|
|
|
}
|
|
|
|
|
|
-static int __kprobes copy_optimized_instructions(u8 *dest, u8 *src)
|
|
|
+static int copy_optimized_instructions(u8 *dest, u8 *src)
|
|
|
{
|
|
|
int len = 0, ret;
|
|
|
|
|
@@ -189,7 +189,7 @@ static int __kprobes copy_optimized_instructions(u8 *dest, u8 *src)
|
|
|
}
|
|
|
|
|
|
/* Check whether insn is indirect jump */
|
|
|
-static int __kprobes insn_is_indirect_jump(struct insn *insn)
|
|
|
+static int insn_is_indirect_jump(struct insn *insn)
|
|
|
{
|
|
|
return ((insn->opcode.bytes[0] == 0xff &&
|
|
|
(X86_MODRM_REG(insn->modrm.value) & 6) == 4) || /* Jump */
|
|
@@ -224,7 +224,7 @@ static int insn_jump_into_range(struct insn *insn, unsigned long start, int len)
|
|
|
}
|
|
|
|
|
|
/* Decode whole function to ensure any instructions don't jump into target */
|
|
|
-static int __kprobes can_optimize(unsigned long paddr)
|
|
|
+static int can_optimize(unsigned long paddr)
|
|
|
{
|
|
|
unsigned long addr, size = 0, offset = 0;
|
|
|
struct insn insn;
|
|
@@ -275,7 +275,7 @@ static int __kprobes can_optimize(unsigned long paddr)
|
|
|
}
|
|
|
|
|
|
/* Check optimized_kprobe can actually be optimized. */
|
|
|
-int __kprobes arch_check_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
+int arch_check_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
{
|
|
|
int i;
|
|
|
struct kprobe *p;
|
|
@@ -290,15 +290,15 @@ int __kprobes arch_check_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
}
|
|
|
|
|
|
/* Check the addr is within the optimized instructions. */
|
|
|
-int __kprobes
|
|
|
-arch_within_optimized_kprobe(struct optimized_kprobe *op, unsigned long addr)
|
|
|
+int arch_within_optimized_kprobe(struct optimized_kprobe *op,
|
|
|
+ unsigned long addr)
|
|
|
{
|
|
|
return ((unsigned long)op->kp.addr <= addr &&
|
|
|
(unsigned long)op->kp.addr + op->optinsn.size > addr);
|
|
|
}
|
|
|
|
|
|
/* Free optimized instruction slot */
|
|
|
-static __kprobes
|
|
|
+static
|
|
|
void __arch_remove_optimized_kprobe(struct optimized_kprobe *op, int dirty)
|
|
|
{
|
|
|
if (op->optinsn.insn) {
|
|
@@ -308,7 +308,7 @@ void __arch_remove_optimized_kprobe(struct optimized_kprobe *op, int dirty)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void __kprobes arch_remove_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
+void arch_remove_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
{
|
|
|
__arch_remove_optimized_kprobe(op, 1);
|
|
|
}
|
|
@@ -318,7 +318,7 @@ void __kprobes arch_remove_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
* Target instructions MUST be relocatable (checked inside)
|
|
|
* This is called when new aggr(opt)probe is allocated or reused.
|
|
|
*/
|
|
|
-int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
+int arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
{
|
|
|
u8 *buf;
|
|
|
int ret;
|
|
@@ -372,7 +372,7 @@ int __kprobes arch_prepare_optimized_kprobe(struct optimized_kprobe *op)
|
|
|
* Replace breakpoints (int3) with relative jumps.
|
|
|
* Caller must call with locking kprobe_mutex and text_mutex.
|
|
|
*/
|
|
|
-void __kprobes arch_optimize_kprobes(struct list_head *oplist)
|
|
|
+void arch_optimize_kprobes(struct list_head *oplist)
|
|
|
{
|
|
|
struct optimized_kprobe *op, *tmp;
|
|
|
u8 insn_buf[RELATIVEJUMP_SIZE];
|
|
@@ -398,7 +398,7 @@ void __kprobes arch_optimize_kprobes(struct list_head *oplist)
|
|
|
}
|
|
|
|
|
|
/* Replace a relative jump with a breakpoint (int3). */
|
|
|
-void __kprobes arch_unoptimize_kprobe(struct optimized_kprobe *op)
|
|
|
+void arch_unoptimize_kprobe(struct optimized_kprobe *op)
|
|
|
{
|
|
|
u8 insn_buf[RELATIVEJUMP_SIZE];
|
|
|
|