From: Masami Hiramatsu <mhiramat@kernel.org> To: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@kernel.org> Cc: Masami Hiramatsu <mhiramat@kernel.org>, Ingo Molnar <mingo@redhat.com>, "H . Peter Anvin" <hpa@zytor.com>, linux-kernel@vger.kernel.org, Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>, Andrew Morton <akpm@linux-foundation.org>, Steven Rostedt <rostedt@goodmis.org>, linux-arch@vger.kernel.org, Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, linux-sh@vger.kernel.org Subject: [PATCH -tip v6 11/27] sh: kprobes: Remove jprobe implementation Date: Tue, 19 Jun 2018 16:09:28 +0000 [thread overview] Message-ID: <152942456877.15209.5482537226935729621.stgit@devbox> (raw) In-Reply-To: <152942424698.15209.15245996287444292393.stgit@devbox> Remove arch dependent setjump/longjump functions and unused fields in kprobe_ctlblk for jprobes from arch/sh. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Rich Felker <dalias@libc.org> Cc: linux-sh@vger.kernel.org --- arch/sh/include/asm/kprobes.h | 4 --- arch/sh/kernel/kprobes.c | 51 ----------------------------------------- 2 files changed, 55 deletions(-) diff --git a/arch/sh/include/asm/kprobes.h b/arch/sh/include/asm/kprobes.h index 85d8bcaa8493..6171682f7798 100644 --- a/arch/sh/include/asm/kprobes.h +++ b/arch/sh/include/asm/kprobes.h @@ -27,7 +27,6 @@ struct kprobe; void arch_remove_kprobe(struct kprobe *); void kretprobe_trampoline(void); -void jprobe_return_end(void); /* Architecture specific copy of original instruction*/ struct arch_specific_insn { @@ -43,9 +42,6 @@ struct prev_kprobe { /* per-cpu kprobe control block */ struct kprobe_ctlblk { unsigned long kprobe_status; - unsigned long jprobe_saved_r15; - struct pt_regs jprobe_saved_regs; - kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE]; struct prev_kprobe prev_kprobe; }; diff --git a/arch/sh/kernel/kprobes.c b/arch/sh/kernel/kprobes.c index 52a5e11247d1..2b5e58873b96 100644 --- a/arch/sh/kernel/kprobes.c +++ b/arch/sh/kernel/kprobes.c @@ -523,57 +523,6 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self, return ret; } -int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) -{ - struct jprobe *jp = container_of(p, struct jprobe, kp); - unsigned long addr; - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - - kcb->jprobe_saved_regs = *regs; - kcb->jprobe_saved_r15 = regs->regs[15]; - addr = kcb->jprobe_saved_r15; - - /* - * TBD: As Linus pointed out, gcc assumes that the callee - * owns the argument space and could overwrite it, e.g. - * tailcall optimization. So, to be absolutely safe - * we also save and restore enough stack bytes to cover - * the argument area. - */ - memcpy(kcb->jprobes_stack, (kprobe_opcode_t *) addr, - MIN_STACK_SIZE(addr)); - - regs->pc = (unsigned long)(jp->entry); - - return 1; -} - -void __kprobes jprobe_return(void) -{ - asm volatile ("trapa #0x3a\n\t" "jprobe_return_end:\n\t" "nop\n\t"); -} - -int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) -{ - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - unsigned long stack_addr = kcb->jprobe_saved_r15; - u8 *addr = (u8 *)regs->pc; - - if ((addr >= (u8 *)jprobe_return) && - (addr <= (u8 *)jprobe_return_end)) { - *regs = kcb->jprobe_saved_regs; - - memcpy((kprobe_opcode_t *)stack_addr, kcb->jprobes_stack, - MIN_STACK_SIZE(stack_addr)); - - kcb->kprobe_status = KPROBE_HIT_SS; - preempt_enable_no_resched(); - return 1; - } - - return 0; -} - static struct kprobe trampoline_p = { .addr = (kprobe_opcode_t *)&kretprobe_trampoline, .pre_handler = trampoline_probe_handler
WARNING: multiple messages have this Message-ID (diff)
From: Masami Hiramatsu <mhiramat@kernel.org> To: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@kernel.org> Cc: Masami Hiramatsu <mhiramat@kernel.org>, Ingo Molnar <mingo@redhat.com>, "H . Peter Anvin" <hpa@zytor.com>, linux-kernel@vger.kernel.org, Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>, Andrew Morton <akpm@linux-foundation.org>, Steven Rostedt <rostedt@goodmis.org>, linux-arch@vger.kernel.org, Yoshinori Sato <ysato@users.sourceforge.jp>, Rich Felker <dalias@libc.org>, linux-sh@vger.kernel.org Subject: [PATCH -tip v6 11/27] sh: kprobes: Remove jprobe implementation Date: Wed, 20 Jun 2018 01:09:28 +0900 [thread overview] Message-ID: <152942456877.15209.5482537226935729621.stgit@devbox> (raw) In-Reply-To: <152942424698.15209.15245996287444292393.stgit@devbox> Remove arch dependent setjump/longjump functions and unused fields in kprobe_ctlblk for jprobes from arch/sh. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> Cc: Rich Felker <dalias@libc.org> Cc: linux-sh@vger.kernel.org --- arch/sh/include/asm/kprobes.h | 4 --- arch/sh/kernel/kprobes.c | 51 ----------------------------------------- 2 files changed, 55 deletions(-) diff --git a/arch/sh/include/asm/kprobes.h b/arch/sh/include/asm/kprobes.h index 85d8bcaa8493..6171682f7798 100644 --- a/arch/sh/include/asm/kprobes.h +++ b/arch/sh/include/asm/kprobes.h @@ -27,7 +27,6 @@ struct kprobe; void arch_remove_kprobe(struct kprobe *); void kretprobe_trampoline(void); -void jprobe_return_end(void); /* Architecture specific copy of original instruction*/ struct arch_specific_insn { @@ -43,9 +42,6 @@ struct prev_kprobe { /* per-cpu kprobe control block */ struct kprobe_ctlblk { unsigned long kprobe_status; - unsigned long jprobe_saved_r15; - struct pt_regs jprobe_saved_regs; - kprobe_opcode_t jprobes_stack[MAX_STACK_SIZE]; struct prev_kprobe prev_kprobe; }; diff --git a/arch/sh/kernel/kprobes.c b/arch/sh/kernel/kprobes.c index 52a5e11247d1..2b5e58873b96 100644 --- a/arch/sh/kernel/kprobes.c +++ b/arch/sh/kernel/kprobes.c @@ -523,57 +523,6 @@ int __kprobes kprobe_exceptions_notify(struct notifier_block *self, return ret; } -int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) -{ - struct jprobe *jp = container_of(p, struct jprobe, kp); - unsigned long addr; - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - - kcb->jprobe_saved_regs = *regs; - kcb->jprobe_saved_r15 = regs->regs[15]; - addr = kcb->jprobe_saved_r15; - - /* - * TBD: As Linus pointed out, gcc assumes that the callee - * owns the argument space and could overwrite it, e.g. - * tailcall optimization. So, to be absolutely safe - * we also save and restore enough stack bytes to cover - * the argument area. - */ - memcpy(kcb->jprobes_stack, (kprobe_opcode_t *) addr, - MIN_STACK_SIZE(addr)); - - regs->pc = (unsigned long)(jp->entry); - - return 1; -} - -void __kprobes jprobe_return(void) -{ - asm volatile ("trapa #0x3a\n\t" "jprobe_return_end:\n\t" "nop\n\t"); -} - -int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) -{ - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - unsigned long stack_addr = kcb->jprobe_saved_r15; - u8 *addr = (u8 *)regs->pc; - - if ((addr >= (u8 *)jprobe_return) && - (addr <= (u8 *)jprobe_return_end)) { - *regs = kcb->jprobe_saved_regs; - - memcpy((kprobe_opcode_t *)stack_addr, kcb->jprobes_stack, - MIN_STACK_SIZE(stack_addr)); - - kcb->kprobe_status = KPROBE_HIT_SS; - preempt_enable_no_resched(); - return 1; - } - - return 0; -} - static struct kprobe trampoline_p = { .addr = (kprobe_opcode_t *)&kretprobe_trampoline, .pre_handler = trampoline_probe_handler
next prev parent reply other threads:[~2018-06-19 16:09 UTC|newest] Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-06-19 16:04 [PATCH -tip v6 00/27] kprobes: Cleanup jprobe implementation Masami Hiramatsu 2018-06-19 16:04 ` [PATCH -tip v6 01/27] Documentation/kprobes: Fix to remove remaining jprobe Masami Hiramatsu 2018-06-19 16:04 ` Masami Hiramatsu 2018-06-19 16:05 ` [PATCH -tip v6 02/27] kprobes: Remove jprobe API implementation Masami Hiramatsu 2018-06-19 16:05 ` [PATCH -tip v6 03/27] kprobes/x86: Remove jprobe implementation Masami Hiramatsu 2018-06-19 16:06 ` [PATCH -tip v6 04/27] ARC: kprobes: " Masami Hiramatsu 2018-06-19 16:06 ` Masami Hiramatsu 2018-06-19 16:06 ` [PATCH -tip v6 05/27] ARM: kprobes: Remove jprobe arm implementation Masami Hiramatsu 2018-06-19 16:06 ` Masami Hiramatsu 2018-06-19 16:07 ` [PATCH -tip v6 06/27] arm64: kprobes: Remove jprobe implementation Masami Hiramatsu 2018-06-19 16:07 ` Masami Hiramatsu 2018-06-19 16:07 ` [PATCH -tip v6 07/27] powerpc/kprobes: Remove jprobe powerpc implementation Masami Hiramatsu 2018-06-19 16:08 ` [PATCH -tip v6 08/27] ia64: kprobes: Remove jprobe implementation Masami Hiramatsu 2018-06-19 16:08 ` Masami Hiramatsu 2018-06-19 16:08 ` [PATCH -tip v6 09/27] MIPS: " Masami Hiramatsu 2018-06-19 16:08 ` [PATCH -tip v6 10/27] s390/kprobes: " Masami Hiramatsu 2018-06-19 16:09 ` Masami Hiramatsu [this message] 2018-06-19 16:09 ` [PATCH -tip v6 11/27] sh: kprobes: " Masami Hiramatsu 2018-06-19 16:09 ` [PATCH -tip v6 12/27] sparc64: " Masami Hiramatsu 2018-06-19 16:09 ` Masami Hiramatsu 2018-06-19 16:10 ` [PATCH -tip v6 13/27] kprobes: Don't check the ->break_handler() in generic kprobes code Masami Hiramatsu 2018-06-19 16:10 ` [PATCH -tip v6 14/27] kprobes/x86: Don't call ->break_handler() in x86 kprobes Masami Hiramatsu 2018-06-19 16:11 ` [PATCH -tip v6 15/27] ARC: kprobes: Don't call the ->break_handler() in ARC kprobes code Masami Hiramatsu 2018-06-19 16:11 ` Masami Hiramatsu 2018-06-19 16:11 ` [PATCH -tip v6 16/27] ARM: kprobes: Don't call the ->break_handler() in arm " Masami Hiramatsu 2018-06-19 16:11 ` Masami Hiramatsu 2018-06-19 16:12 ` [PATCH -tip v6 17/27] arm64: kprobes: Don't call the ->break_handler() in arm64 " Masami Hiramatsu 2018-06-19 16:12 ` Masami Hiramatsu 2018-06-19 16:12 ` [PATCH -tip v6 18/27] powerpc/kprobes: Don't call the ->break_handler() in powerpc " Masami Hiramatsu 2018-06-19 16:13 ` [PATCH -tip v6 19/27] ia64: kprobes: Don't call the ->break_handler() in ia64 " Masami Hiramatsu 2018-06-19 16:13 ` Masami Hiramatsu 2018-06-19 16:13 ` [PATCH -tip v6 20/27] MIPS: kprobes: Don't call the ->break_handler() in MIPS " Masami Hiramatsu 2018-06-19 16:14 ` [PATCH -tip v6 21/27] s390/kprobes: Don't call the ->break_handler() in s390 " Masami Hiramatsu 2018-06-19 16:14 ` [PATCH -tip v6 22/27] sh: kprobes: Don't call the ->break_handler() in SH " Masami Hiramatsu 2018-06-19 16:14 ` Masami Hiramatsu 2018-06-19 16:15 ` [PATCH -tip v6 23/27] sparc64: kprobes: Don't call the ->break_handler() in sparc64 " Masami Hiramatsu 2018-06-19 16:15 ` Masami Hiramatsu 2018-06-19 16:15 ` [PATCH -tip v6 24/27] bpf: error-inject: kprobes: Clear current_kprobe and enable preempt in kprobe Masami Hiramatsu 2018-06-19 16:15 ` Masami Hiramatsu 2018-06-19 16:15 ` Masami Hiramatsu 2018-06-19 16:15 ` Masami Hiramatsu 2018-06-19 16:15 ` Masami Hiramatsu 2018-06-19 16:16 ` [PATCH -tip v6 25/27] kprobes/x86: Do not disable preempt on int3 path Masami Hiramatsu 2018-06-19 16:16 ` Masami Hiramatsu 2018-06-19 16:16 ` [PATCH -tip v6 26/27] Documentation: kprobes: Add how to change the execution path Masami Hiramatsu 2018-06-19 16:16 ` Masami Hiramatsu 2018-06-19 16:31 ` Randy Dunlap 2018-06-19 16:31 ` Randy Dunlap 2018-06-20 8:26 ` Masami Hiramatsu 2018-06-20 8:26 ` Masami Hiramatsu 2018-06-21 10:35 ` Ingo Molnar 2018-06-21 10:35 ` Ingo Molnar 2018-06-22 6:07 ` Masami Hiramatsu 2018-06-22 6:07 ` Masami Hiramatsu 2018-06-22 6:07 ` Masami Hiramatsu 2018-06-22 9:15 ` [tip:perf/core] kprobes/Documentation: Fix various typos tip-bot for Masami Hiramatsu 2018-06-19 16:17 ` [PATCH -tip v6 27/27] kprobes: Remove jprobe stub API Masami Hiramatsu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=152942456877.15209.5482537226935729621.stgit@devbox \ --to=mhiramat@kernel.org \ --cc=akpm@linux-foundation.org \ --cc=ananth@linux.vnet.ibm.com \ --cc=dalias@libc.org \ --cc=hpa@zytor.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-sh@vger.kernel.org \ --cc=mingo@kernel.org \ --cc=mingo@redhat.com \ --cc=rostedt@goodmis.org \ --cc=tglx@linutronix.de \ --cc=ysato@users.sourceforge.jp \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.