On Thu, Feb 12, 2015 at 08:20:35PM +0800, Wang Nan wrote: > In arm's vmlinux.lds, introduces code area inside text section. > Executable area used by early kprobes will be allocated from there. > > Signed-off-by: Wang Nan <wangn...@huawei.com> > --- > arch/arm/include/asm/kprobes.h | 31 +++++++++++++++++++++++++++++-- > arch/arm/kernel/vmlinux.lds.S | 2 ++ > 2 files changed, 31 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/include/asm/kprobes.h b/arch/arm/include/asm/kprobes.h > index 3ea9be5..0a4421e 100644 > --- a/arch/arm/include/asm/kprobes.h > +++ b/arch/arm/include/asm/kprobes.h > @@ -17,16 +17,42 @@ > #define _ARM_KPROBES_H > > #include <linux/types.h> > -#include <linux/ptrace.h> > -#include <linux/notifier.h> > > #define __ARCH_WANT_KPROBES_INSN_SLOT > #define MAX_INSN_SIZE 2 > > +#ifdef __ASSEMBLY__ > + > +#define KPROBE_OPCODE_SIZE 4 > +#define MAX_OPTINSN_SIZE (optprobe_template_end - optprobe_template_entry) > + > +#ifdef CONFIG_EARLY_KPROBES > +#define EARLY_KPROBES_CODES_AREA \ > + . = 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) = .; > + > +#else > +#define EARLY_KPROBES_CODES_AREA > +#endif
Please don't spread vmlinux specific stuff around the kernel include files. Let's try to keep it contained to a minimal set of files. -- FTTC broadband for 0.8mile line: currently at 10.5Mbps down 400kbps up according to speedtest.net. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/