Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755155AbbBOIeS (ORCPT ); Sun, 15 Feb 2015 03:34:18 -0500 Received: from szxga01-in.huawei.com ([119.145.14.64]:39999 "EHLO szxga01-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751957AbbBOIeP (ORCPT ); Sun, 15 Feb 2015 03:34:15 -0500 From: Wang Nan To: CC: , , , , Subject: [RFC PATCH 3/3] early kprobes: introduce early kprobes related code area. Date: Sun, 15 Feb 2015 16:27:13 +0800 Message-ID: <1423988833-7301-1-git-send-email-wangnan0@huawei.com> X-Mailer: git-send-email 1.8.4 In-Reply-To: <1423988798-7104-1-git-send-email-wangnan0@huawei.com> References: <1423988798-7104-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 Content-Length: 1791 Lines: 51 Append early kprobe related slots to KPROBES_TEXT. This is arch independent part. Arch code should define MAX_OPTINSN_SIZE, KPROBE_OPCODE_SIZE and MAX_INSN_SIZE for it. Signed-off-by: Wang Nan --- include/asm-generic/vmlinux.lds.h | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index ac78910..7cd1d21 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -424,11 +424,28 @@ *(.spinlock.text) \ VMLINUX_SYMBOL(__lock_text_end) = .; +#ifndef CONFIG_EARLY_KPROBES +# define EARLY_KPROBES_TEXT +#else +# define EARLY_KPROBES_TEXT \ + . = ALIGN(8); \ + VMLINUX_SYMBOL(__early_kprobes_start) = .; \ + VMLINUX_SYMBOL(__early_kprobes_code_area_start) = .; \ + . = . + MAX_OPTINSN_SIZE * CONFIG_NR_EARLY_KPROBES_SLOTS; \ + VMLINUX_SYMBOL(__early_kprobes_code_area_end) = .; \ + . = ALIGN(8); \ + VMLINUX_SYMBOL(__early_kprobes_insn_slot_start) = .; \ + . = . + MAX_INSN_SIZE * KPROBE_OPCODE_SIZE * CONFIG_NR_EARLY_KPROBES_SLOTS;\ + VMLINUX_SYMBOL(__early_kprobes_insn_slot_end) = .; \ + VMLINUX_SYMBOL(__early_kprobes_end) = .; +#endif + #define KPROBES_TEXT \ ALIGN_FUNCTION(); \ VMLINUX_SYMBOL(__kprobes_text_start) = .; \ *(.kprobes.text) \ - VMLINUX_SYMBOL(__kprobes_text_end) = .; + VMLINUX_SYMBOL(__kprobes_text_end) = .; \ + EARLY_KPROBES_TEXT #define ENTRY_TEXT \ ALIGN_FUNCTION(); \ -- 1.8.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/