diff options
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r-- | arch/x86/kernel/kprobes_32.c | 7 | ||||
-rw-r--r-- | arch/x86/kernel/kprobes_64.c | 7 | ||||
-rw-r--r-- | arch/x86/kernel/process_64.c | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/arch/x86/kernel/kprobes_32.c b/arch/x86/kernel/kprobes_32.c index 06b86e5617f6..90f778c04b3f 100644 --- a/arch/x86/kernel/kprobes_32.c +++ b/arch/x86/kernel/kprobes_32.c | |||
@@ -41,6 +41,13 @@ void jprobe_return_end(void); | |||
41 | DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; | 41 | DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; |
42 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); | 42 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); |
43 | 43 | ||
44 | struct kretprobe_blackpoint kretprobe_blacklist[] = { | ||
45 | {"__switch_to", }, /* This function switches only current task, but | ||
46 | doesn't switch kernel stack.*/ | ||
47 | {NULL, NULL} /* Terminator */ | ||
48 | }; | ||
49 | const int kretprobe_blacklist_size = ARRAY_SIZE(kretprobe_blacklist); | ||
50 | |||
44 | /* insert a jmp code */ | 51 | /* insert a jmp code */ |
45 | static __always_inline void set_jmp_op(void *from, void *to) | 52 | static __always_inline void set_jmp_op(void *from, void *to) |
46 | { | 53 | { |
diff --git a/arch/x86/kernel/kprobes_64.c b/arch/x86/kernel/kprobes_64.c index 7c16506d681f..681b801c5e26 100644 --- a/arch/x86/kernel/kprobes_64.c +++ b/arch/x86/kernel/kprobes_64.c | |||
@@ -48,6 +48,13 @@ static void __kprobes arch_copy_kprobe(struct kprobe *p); | |||
48 | DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; | 48 | DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; |
49 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); | 49 | DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); |
50 | 50 | ||
51 | struct kretprobe_blackpoint kretprobe_blacklist[] = { | ||
52 | {"__switch_to", }, /* This function switches only current task, but | ||
53 | doesn't switch kernel stack.*/ | ||
54 | {NULL, NULL} /* Terminator */ | ||
55 | }; | ||
56 | const int kretprobe_blacklist_size = ARRAY_SIZE(kretprobe_blacklist); | ||
57 | |||
51 | /* | 58 | /* |
52 | * returns non-zero if opcode modifies the interrupt flag. | 59 | * returns non-zero if opcode modifies the interrupt flag. |
53 | */ | 60 | */ |
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index 7352d4b377e6..6309b275cb9c 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -581,7 +581,7 @@ static inline void __switch_to_xtra(struct task_struct *prev_p, | |||
581 | * | 581 | * |
582 | * Kprobes not supported here. Set the probe on schedule instead. | 582 | * Kprobes not supported here. Set the probe on schedule instead. |
583 | */ | 583 | */ |
584 | __kprobes struct task_struct * | 584 | struct task_struct * |
585 | __switch_to(struct task_struct *prev_p, struct task_struct *next_p) | 585 | __switch_to(struct task_struct *prev_p, struct task_struct *next_p) |
586 | { | 586 | { |
587 | struct thread_struct *prev = &prev_p->thread, | 587 | struct thread_struct *prev = &prev_p->thread, |