aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/jump_label.h
diff options
context:
space:
mode:
authorJason Baron <jbaron@redhat.com>2010-09-17 11:09:08 -0400
committerSteven Rostedt <rostedt@goodmis.org>2010-09-22 16:30:46 -0400
commit4c3ef6d79328c0e23ade60cbfc8d496123a6855c (patch)
tree4a28260548ff4ad507d12716d6cdaa6bc0451a87 /include/linux/jump_label.h
parente0cf0cd49632552f063fb3ae58691946da45fb2e (diff)
jump label: Add jump_label_text_reserved() to reserve jump points
Add a jump_label_text_reserved(void *start, void *end), so that other pieces of code that want to modify kernel text, can first verify that jump label has not reserved the instruction. Acked-by: Masami Hiramatsu <mhiramat@redhat.com> Signed-off-by: Jason Baron <jbaron@redhat.com> LKML-Reference: <06236663a3a7b1c1f13576bb9eccb6d9c17b7bfe.1284733808.git.jbaron@redhat.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'include/linux/jump_label.h')
-rw-r--r--include/linux/jump_label.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index de58656d28e0..b72cd9f92c2e 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -20,9 +20,10 @@ extern struct jump_entry __stop___jump_table[];
20 20
21extern void arch_jump_label_transform(struct jump_entry *entry, 21extern void arch_jump_label_transform(struct jump_entry *entry,
22 enum jump_label_type type); 22 enum jump_label_type type);
23extern void arch_jump_label_text_poke_early(jump_label_t addr);
23extern void jump_label_update(unsigned long key, enum jump_label_type type); 24extern void jump_label_update(unsigned long key, enum jump_label_type type);
24extern void jump_label_apply_nops(struct module *mod); 25extern void jump_label_apply_nops(struct module *mod);
25extern void arch_jump_label_text_poke_early(jump_label_t addr); 26extern int jump_label_text_reserved(void *start, void *end);
26 27
27#define enable_jump_label(key) \ 28#define enable_jump_label(key) \
28 jump_label_update((unsigned long)key, JUMP_LABEL_ENABLE); 29 jump_label_update((unsigned long)key, JUMP_LABEL_ENABLE);
@@ -53,6 +54,11 @@ static inline int jump_label_apply_nops(struct module *mod)
53 return 0; 54 return 0;
54} 55}
55 56
57static inline int jump_label_text_reserved(void *start, void *end)
58{
59 return 0;
60}
61
56#endif 62#endif
57 63
58#endif 64#endif