diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-avr32/kprobes.h | 2 | ||||
-rw-r--r-- | include/asm-ia64/kprobes.h | 1 | ||||
-rw-r--r-- | include/asm-powerpc/kprobes.h | 1 | ||||
-rw-r--r-- | include/asm-s390/kprobes.h | 1 | ||||
-rw-r--r-- | include/asm-sparc64/kprobes.h | 2 | ||||
-rw-r--r-- | include/asm-x86/kprobes_32.h | 2 | ||||
-rw-r--r-- | include/asm-x86/kprobes_64.h | 1 | ||||
-rw-r--r-- | include/linux/kprobes.h | 6 |
8 files changed, 16 insertions, 0 deletions
diff --git a/include/asm-avr32/kprobes.h b/include/asm-avr32/kprobes.h index 0f3e636e6e4d..996cb656474e 100644 --- a/include/asm-avr32/kprobes.h +++ b/include/asm-avr32/kprobes.h | |||
@@ -17,6 +17,8 @@ typedef u16 kprobe_opcode_t; | |||
17 | #define BREAKPOINT_INSTRUCTION 0xd673 /* breakpoint */ | 17 | #define BREAKPOINT_INSTRUCTION 0xd673 /* breakpoint */ |
18 | #define MAX_INSN_SIZE 2 | 18 | #define MAX_INSN_SIZE 2 |
19 | 19 | ||
20 | #define kretprobe_blacklist_size 0 | ||
21 | |||
20 | #define arch_remove_kprobe(p) do { } while (0) | 22 | #define arch_remove_kprobe(p) do { } while (0) |
21 | 23 | ||
22 | /* Architecture specific copy of original instruction */ | 24 | /* Architecture specific copy of original instruction */ |
diff --git a/include/asm-ia64/kprobes.h b/include/asm-ia64/kprobes.h index 6c79edf24d73..a93ce9ef07ff 100644 --- a/include/asm-ia64/kprobes.h +++ b/include/asm-ia64/kprobes.h | |||
@@ -83,6 +83,7 @@ struct kprobe_ctlblk { | |||
83 | }; | 83 | }; |
84 | 84 | ||
85 | #define ARCH_SUPPORTS_KRETPROBES | 85 | #define ARCH_SUPPORTS_KRETPROBES |
86 | #define kretprobe_blacklist_size 0 | ||
86 | 87 | ||
87 | #define SLOT0_OPCODE_SHIFT (37) | 88 | #define SLOT0_OPCODE_SHIFT (37) |
88 | #define SLOT1_p1_OPCODE_SHIFT (37 - (64-46)) | 89 | #define SLOT1_p1_OPCODE_SHIFT (37 - (64-46)) |
diff --git a/include/asm-powerpc/kprobes.h b/include/asm-powerpc/kprobes.h index c16973d5de62..afabad230dbb 100644 --- a/include/asm-powerpc/kprobes.h +++ b/include/asm-powerpc/kprobes.h | |||
@@ -82,6 +82,7 @@ typedef unsigned int kprobe_opcode_t; | |||
82 | 82 | ||
83 | #define ARCH_SUPPORTS_KRETPROBES | 83 | #define ARCH_SUPPORTS_KRETPROBES |
84 | #define flush_insn_slot(p) do { } while (0) | 84 | #define flush_insn_slot(p) do { } while (0) |
85 | #define kretprobe_blacklist_size 0 | ||
85 | 86 | ||
86 | void kretprobe_trampoline(void); | 87 | void kretprobe_trampoline(void); |
87 | extern void arch_remove_kprobe(struct kprobe *p); | 88 | extern void arch_remove_kprobe(struct kprobe *p); |
diff --git a/include/asm-s390/kprobes.h b/include/asm-s390/kprobes.h index 8bc67cc9ffd2..948db3d0d05c 100644 --- a/include/asm-s390/kprobes.h +++ b/include/asm-s390/kprobes.h | |||
@@ -47,6 +47,7 @@ typedef u16 kprobe_opcode_t; | |||
47 | : (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR))) | 47 | : (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR))) |
48 | 48 | ||
49 | #define ARCH_SUPPORTS_KRETPROBES | 49 | #define ARCH_SUPPORTS_KRETPROBES |
50 | #define kretprobe_blacklist_size 0 | ||
50 | 51 | ||
51 | #define KPROBE_SWAP_INST 0x10 | 52 | #define KPROBE_SWAP_INST 0x10 |
52 | 53 | ||
diff --git a/include/asm-sparc64/kprobes.h b/include/asm-sparc64/kprobes.h index a04145b77f96..5020eaf67c29 100644 --- a/include/asm-sparc64/kprobes.h +++ b/include/asm-sparc64/kprobes.h | |||
@@ -10,6 +10,8 @@ typedef u32 kprobe_opcode_t; | |||
10 | #define BREAKPOINT_INSTRUCTION_2 0x91d02071 /* ta 0x71 */ | 10 | #define BREAKPOINT_INSTRUCTION_2 0x91d02071 /* ta 0x71 */ |
11 | #define MAX_INSN_SIZE 2 | 11 | #define MAX_INSN_SIZE 2 |
12 | 12 | ||
13 | #define kretprobe_blacklist_size 0 | ||
14 | |||
13 | #define arch_remove_kprobe(p) do {} while (0) | 15 | #define arch_remove_kprobe(p) do {} while (0) |
14 | 16 | ||
15 | #define flush_insn_slot(p) \ | 17 | #define flush_insn_slot(p) \ |
diff --git a/include/asm-x86/kprobes_32.h b/include/asm-x86/kprobes_32.h index f2489d07ce88..b772d5b38685 100644 --- a/include/asm-x86/kprobes_32.h +++ b/include/asm-x86/kprobes_32.h | |||
@@ -45,6 +45,8 @@ typedef u8 kprobe_opcode_t; | |||
45 | #define ARCH_SUPPORTS_KRETPROBES | 45 | #define ARCH_SUPPORTS_KRETPROBES |
46 | #define flush_insn_slot(p) do { } while (0) | 46 | #define flush_insn_slot(p) do { } while (0) |
47 | 47 | ||
48 | extern const int kretprobe_blacklist_size; | ||
49 | |||
48 | void arch_remove_kprobe(struct kprobe *p); | 50 | void arch_remove_kprobe(struct kprobe *p); |
49 | void kretprobe_trampoline(void); | 51 | void kretprobe_trampoline(void); |
50 | 52 | ||
diff --git a/include/asm-x86/kprobes_64.h b/include/asm-x86/kprobes_64.h index 3f495e5308b1..53f4d8507354 100644 --- a/include/asm-x86/kprobes_64.h +++ b/include/asm-x86/kprobes_64.h | |||
@@ -42,6 +42,7 @@ typedef u8 kprobe_opcode_t; | |||
42 | : (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR))) | 42 | : (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR))) |
43 | 43 | ||
44 | #define ARCH_SUPPORTS_KRETPROBES | 44 | #define ARCH_SUPPORTS_KRETPROBES |
45 | extern const int kretprobe_blacklist_size; | ||
45 | 46 | ||
46 | void kretprobe_trampoline(void); | 47 | void kretprobe_trampoline(void); |
47 | extern void arch_remove_kprobe(struct kprobe *p); | 48 | extern void arch_remove_kprobe(struct kprobe *p); |
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index 51464d12a4e5..81891581e89b 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h | |||
@@ -166,6 +166,12 @@ struct kretprobe_instance { | |||
166 | struct task_struct *task; | 166 | struct task_struct *task; |
167 | }; | 167 | }; |
168 | 168 | ||
169 | struct kretprobe_blackpoint { | ||
170 | const char *name; | ||
171 | void *addr; | ||
172 | }; | ||
173 | extern struct kretprobe_blackpoint kretprobe_blacklist[]; | ||
174 | |||
169 | static inline void kretprobe_assert(struct kretprobe_instance *ri, | 175 | static inline void kretprobe_assert(struct kretprobe_instance *ri, |
170 | unsigned long orig_ret_address, unsigned long trampoline_address) | 176 | unsigned long orig_ret_address, unsigned long trampoline_address) |
171 | { | 177 | { |