@@ -50,6 +50,8 @@
#define KPROBE_REENTER 0x00000004
#define KPROBE_HIT_SSDONE 0x00000008
+extern bool kprobes_is_early(void);
+
#else /* CONFIG_KPROBES */
typedef int kprobe_opcode_t;
struct arch_specific_insn {
@@ -69,6 +69,12 @@
static int kprobes_initialized;
static int kprobes_blacklist_initialized;
+
+bool kprobes_is_early(void)
+{
+ return !(kprobes_initialized && kprobes_blacklist_initialized);
+}
+
static struct hlist_head kprobe_table[KPROBE_TABLE_SIZE];
static struct hlist_head kretprobe_inst_table[KPROBE_TABLE_SIZE];
Following early kprobe patches will enable kprobe registering very early, even before kprobe system initialized. kprobe_is_early() can be used to check whether we are working on early kprobes. Signed-off-by: Wang Nan <wangnan0@huawei.com> --- include/linux/kprobes.h | 2 ++ kernel/kprobes.c | 6 ++++++ 2 files changed, 8 insertions(+)