|
@@ -49,10 +49,10 @@ typedef u8 kprobe_opcode_t;
|
|
|
#define flush_insn_slot(p) do { } while (0)
|
|
|
|
|
|
/* optinsn template addresses */
|
|
|
-extern kprobe_opcode_t optprobe_template_entry;
|
|
|
-extern kprobe_opcode_t optprobe_template_val;
|
|
|
-extern kprobe_opcode_t optprobe_template_call;
|
|
|
-extern kprobe_opcode_t optprobe_template_end;
|
|
|
+extern __visible kprobe_opcode_t optprobe_template_entry;
|
|
|
+extern __visible kprobe_opcode_t optprobe_template_val;
|
|
|
+extern __visible kprobe_opcode_t optprobe_template_call;
|
|
|
+extern __visible kprobe_opcode_t optprobe_template_end;
|
|
|
#define MAX_OPTIMIZED_LENGTH (MAX_INSN_SIZE + RELATIVE_ADDR_SIZE)
|
|
|
#define MAX_OPTINSN_SIZE \
|
|
|
(((unsigned long)&optprobe_template_end - \
|
|
@@ -62,7 +62,7 @@ extern kprobe_opcode_t optprobe_template_end;
|
|
|
extern const int kretprobe_blacklist_size;
|
|
|
|
|
|
void arch_remove_kprobe(struct kprobe *p);
|
|
|
-void kretprobe_trampoline(void);
|
|
|
+asmlinkage void kretprobe_trampoline(void);
|
|
|
|
|
|
/* Architecture specific copy of original instruction*/
|
|
|
struct arch_specific_insn {
|