|
@@ -217,13 +217,6 @@ name: \
|
|
|
addi r2,r2,(.TOC.-0b)@l; \
|
|
|
.localentry name,.-name
|
|
|
|
|
|
-#define _KPROBE(name) \
|
|
|
- .section ".kprobes.text","a"; \
|
|
|
- .align 2 ; \
|
|
|
- .type name,@function; \
|
|
|
- .globl name; \
|
|
|
-name:
|
|
|
-
|
|
|
#define DOTSYM(a) a
|
|
|
|
|
|
#else
|
|
@@ -247,20 +240,6 @@ GLUE(.,name):
|
|
|
|
|
|
#define _GLOBAL_TOC(name) _GLOBAL(name)
|
|
|
|
|
|
-#define _KPROBE(name) \
|
|
|
- .section ".kprobes.text","a"; \
|
|
|
- .align 2 ; \
|
|
|
- .globl name; \
|
|
|
- .globl GLUE(.,name); \
|
|
|
- .section ".opd","aw"; \
|
|
|
-name: \
|
|
|
- .quad GLUE(.,name); \
|
|
|
- .quad .TOC.@tocbase; \
|
|
|
- .quad 0; \
|
|
|
- .previous; \
|
|
|
- .type GLUE(.,name),@function; \
|
|
|
-GLUE(.,name):
|
|
|
-
|
|
|
#define DOTSYM(a) GLUE(.,a)
|
|
|
|
|
|
#endif
|
|
@@ -279,13 +258,22 @@ n:
|
|
|
|
|
|
#define _GLOBAL_TOC(name) _GLOBAL(name)
|
|
|
|
|
|
-#define _KPROBE(n) \
|
|
|
- .section ".kprobes.text","a"; \
|
|
|
- .globl n; \
|
|
|
-n:
|
|
|
-
|
|
|
#endif
|
|
|
|
|
|
+/*
|
|
|
+ * __kprobes (the C annotation) puts the symbol into the .kprobes.text
|
|
|
+ * section, which gets emitted at the end of regular text.
|
|
|
+ *
|
|
|
+ * _ASM_NOKPROBE_SYMBOL and NOKPROBE_SYMBOL just adds the symbol to
|
|
|
+ * a blacklist. The former is for core kprobe functions/data, the
|
|
|
+ * latter is for those that incdentially must be excluded from probing
|
|
|
+ * and allows them to be linked at more optimal location within text.
|
|
|
+ */
|
|
|
+#define _ASM_NOKPROBE_SYMBOL(entry) \
|
|
|
+ .pushsection "_kprobe_blacklist","aw"; \
|
|
|
+ PPC_LONG (entry) ; \
|
|
|
+ .popsection
|
|
|
+
|
|
|
#define FUNC_START(name) _GLOBAL(name)
|
|
|
#define FUNC_END(name)
|
|
|
|