From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755380AbbCBOeH (ORCPT ); Mon, 2 Mar 2015 09:34:07 -0500 Received: from szxga01-in.huawei.com ([119.145.14.64]:42826 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754591AbbCBOZx (ORCPT ); Mon, 2 Mar 2015 09:25:53 -0500 From: Wang Nan To: , , , , CC: , , , Subject: [RFC PATCH v4 05/34] early kprobes: introduce kprobe_is_early for futher early kprobe use. Date: Mon, 2 Mar 2015 22:24:43 +0800 Message-ID: <1425306312-3437-6-git-send-email-wangnan0@huawei.com> X-Mailer: git-send-email 1.8.4 In-Reply-To: <1425306312-3437-1-git-send-email-wangnan0@huawei.com> References: <1425306312-3437-1-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.107.197.247] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- include/linux/kprobes.h | 2 ++ kernel/kprobes.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index 1ab5475..a3de759 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h @@ -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 { diff --git a/kernel/kprobes.c b/kernel/kprobes.c index 427d761..2e728a4 100644 --- a/kernel/kprobes.c +++ b/kernel/kprobes.c @@ -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]; -- 1.8.4