|
@@ -28,6 +28,7 @@
|
|
|
#include <linux/kdebug.h>
|
|
|
#include <linux/kallsyms.h>
|
|
|
#include <linux/ftrace.h>
|
|
|
+#include <linux/frame.h>
|
|
|
|
|
|
#include <asm/text-patching.h>
|
|
|
#include <asm/cacheflush.h>
|
|
@@ -94,6 +95,7 @@ static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
|
|
|
}
|
|
|
|
|
|
asm (
|
|
|
+ "optprobe_template_func:\n"
|
|
|
".global optprobe_template_entry\n"
|
|
|
"optprobe_template_entry:\n"
|
|
|
#ifdef CONFIG_X86_64
|
|
@@ -131,7 +133,12 @@ asm (
|
|
|
" popf\n"
|
|
|
#endif
|
|
|
".global optprobe_template_end\n"
|
|
|
- "optprobe_template_end:\n");
|
|
|
+ "optprobe_template_end:\n"
|
|
|
+ ".type optprobe_template_func, @function\n"
|
|
|
+ ".size optprobe_template_func, .-optprobe_template_func\n");
|
|
|
+
|
|
|
+void optprobe_template_func(void);
|
|
|
+STACK_FRAME_NON_STANDARD(optprobe_template_func);
|
|
|
|
|
|
#define TMPL_MOVE_IDX \
|
|
|
((long)&optprobe_template_val - (long)&optprobe_template_entry)
|