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, "David S. Miller" <davem@davemloft.net>, sparclinux@vger.kernel.org Subject: [RFC PATCH -tip v5 12/27] sparc64: kprobes: Remove jprobe implementation Date: Tue, 5 Jun 2018 00:54:20 +0900 [thread overview] Message-ID: <152812765990.10068.4986702684441309090.stgit@devbox> (raw) In-Reply-To: <152812730943.10068.5166429445118734697.stgit@devbox> Remove arch dependent setjump/longjump functions and unused fields in kprobe_ctlblk for jprobes from arch/sparc. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: sparclinux@vger.kernel.org --- arch/sparc/include/asm/kprobes.h | 1 - arch/sparc/kernel/kprobes.c | 47 -------------------------------------- 2 files changed, 48 deletions(-) diff --git a/arch/sparc/include/asm/kprobes.h b/arch/sparc/include/asm/kprobes.h index 3704490b4488..bfcaa6326c20 100644 --- a/arch/sparc/include/asm/kprobes.h +++ b/arch/sparc/include/asm/kprobes.h @@ -44,7 +44,6 @@ struct kprobe_ctlblk { unsigned long kprobe_status; unsigned long kprobe_orig_tnpc; unsigned long kprobe_orig_tstate_pil; - struct pt_regs jprobe_saved_regs; struct prev_kprobe prev_kprobe; }; diff --git a/arch/sparc/kernel/kprobes.c b/arch/sparc/kernel/kprobes.c index ab4ba4347941..f555711da8f1 100644 --- a/arch/sparc/kernel/kprobes.c +++ b/arch/sparc/kernel/kprobes.c @@ -441,53 +441,6 @@ asmlinkage void __kprobes kprobe_trap(unsigned long trap_level, exception_exit(prev_state); } -/* Jprobes support. */ -int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) -{ - struct jprobe *jp = container_of(p, struct jprobe, kp); - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - - memcpy(&(kcb->jprobe_saved_regs), regs, sizeof(*regs)); - - regs->tpc = (unsigned long) jp->entry; - regs->tnpc = ((unsigned long) jp->entry) + 0x4UL; - regs->tstate |= TSTATE_PIL; - - return 1; -} - -void __kprobes jprobe_return(void) -{ - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - register unsigned long orig_fp asm("g1"); - - orig_fp = kcb->jprobe_saved_regs.u_regs[UREG_FP]; - __asm__ __volatile__("\n" -"1: cmp %%sp, %0\n\t" - "blu,a,pt %%xcc, 1b\n\t" - " restore\n\t" - ".globl jprobe_return_trap_instruction\n" -"jprobe_return_trap_instruction:\n\t" - "ta 0x70" - : /* no outputs */ - : "r" (orig_fp)); -} - -extern void jprobe_return_trap_instruction(void); - -int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) -{ - u32 *addr = (u32 *) regs->tpc; - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - - if (addr == (u32 *) jprobe_return_trap_instruction) { - memcpy(regs, &(kcb->jprobe_saved_regs), sizeof(*regs)); - preempt_enable_no_resched(); - return 1; - } - return 0; -} - /* The value stored in the return address register is actually 2 * instructions before where the callee will return to. * Sequences usually look something like this
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, "David S. Miller" <davem@davemloft.net>, sparclinux@vger.kernel.org Subject: [RFC PATCH -tip v5 12/27] sparc64: kprobes: Remove jprobe implementation Date: Mon, 04 Jun 2018 15:54:20 +0000 [thread overview] Message-ID: <152812765990.10068.4986702684441309090.stgit@devbox> (raw) In-Reply-To: <152812730943.10068.5166429445118734697.stgit@devbox> Remove arch dependent setjump/longjump functions and unused fields in kprobe_ctlblk for jprobes from arch/sparc. Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: sparclinux@vger.kernel.org --- arch/sparc/include/asm/kprobes.h | 1 - arch/sparc/kernel/kprobes.c | 47 -------------------------------------- 2 files changed, 48 deletions(-) diff --git a/arch/sparc/include/asm/kprobes.h b/arch/sparc/include/asm/kprobes.h index 3704490b4488..bfcaa6326c20 100644 --- a/arch/sparc/include/asm/kprobes.h +++ b/arch/sparc/include/asm/kprobes.h @@ -44,7 +44,6 @@ struct kprobe_ctlblk { unsigned long kprobe_status; unsigned long kprobe_orig_tnpc; unsigned long kprobe_orig_tstate_pil; - struct pt_regs jprobe_saved_regs; struct prev_kprobe prev_kprobe; }; diff --git a/arch/sparc/kernel/kprobes.c b/arch/sparc/kernel/kprobes.c index ab4ba4347941..f555711da8f1 100644 --- a/arch/sparc/kernel/kprobes.c +++ b/arch/sparc/kernel/kprobes.c @@ -441,53 +441,6 @@ asmlinkage void __kprobes kprobe_trap(unsigned long trap_level, exception_exit(prev_state); } -/* Jprobes support. */ -int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) -{ - struct jprobe *jp = container_of(p, struct jprobe, kp); - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - - memcpy(&(kcb->jprobe_saved_regs), regs, sizeof(*regs)); - - regs->tpc = (unsigned long) jp->entry; - regs->tnpc = ((unsigned long) jp->entry) + 0x4UL; - regs->tstate |= TSTATE_PIL; - - return 1; -} - -void __kprobes jprobe_return(void) -{ - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - register unsigned long orig_fp asm("g1"); - - orig_fp = kcb->jprobe_saved_regs.u_regs[UREG_FP]; - __asm__ __volatile__("\n" -"1: cmp %%sp, %0\n\t" - "blu,a,pt %%xcc, 1b\n\t" - " restore\n\t" - ".globl jprobe_return_trap_instruction\n" -"jprobe_return_trap_instruction:\n\t" - "ta 0x70" - : /* no outputs */ - : "r" (orig_fp)); -} - -extern void jprobe_return_trap_instruction(void); - -int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) -{ - u32 *addr = (u32 *) regs->tpc; - struct kprobe_ctlblk *kcb = get_kprobe_ctlblk(); - - if (addr = (u32 *) jprobe_return_trap_instruction) { - memcpy(regs, &(kcb->jprobe_saved_regs), sizeof(*regs)); - preempt_enable_no_resched(); - return 1; - } - return 0; -} - /* The value stored in the return address register is actually 2 * instructions before where the callee will return to. * Sequences usually look something like this
next prev parent reply other threads:[~2018-06-04 15:54 UTC|newest] Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-06-04 15:48 [RFC PATCH -tip v5 00/27] kprobes: Cleanup jprobe implementation Masami Hiramatsu 2018-06-04 15:49 ` [RFC PATCH -tip v5 01/27] Documentation/kprobes: Fix to remove remaining jprobe Masami Hiramatsu 2018-06-04 15:49 ` Masami Hiramatsu 2018-06-04 15:49 ` [RFC PATCH -tip v5 02/27] kprobes: Remove jprobe API implementation Masami Hiramatsu 2018-06-04 15:49 ` [RFC PATCH -tip v5 03/27] kprobes/x86: Remove jprobe implementation Masami Hiramatsu 2018-06-04 15:50 ` [RFC PATCH -tip v5 04/27] ARC: kprobes: " Masami Hiramatsu 2018-06-04 15:50 ` Masami Hiramatsu 2018-06-04 15:50 ` [RFC PATCH -tip v5 05/27] ARM: kprobes: Remove jprobe arm implementation Masami Hiramatsu 2018-06-04 15:50 ` Masami Hiramatsu 2018-06-04 15:51 ` [RFC PATCH -tip v5 06/27] arm64: kprobes: Remove jprobe implementation Masami Hiramatsu 2018-06-04 15:51 ` Masami Hiramatsu 2018-06-05 15:34 ` Will Deacon 2018-06-05 15:34 ` Will Deacon 2018-06-06 4:42 ` Masami Hiramatsu 2018-06-06 4:42 ` Masami Hiramatsu 2018-06-04 15:51 ` [RFC PATCH -tip v5 07/27] powerpc/kprobes: Remove jprobe powerpc implementation Masami Hiramatsu 2018-06-07 11:31 ` Naveen N. Rao 2018-06-07 11:31 ` Naveen N. Rao 2018-06-07 14:23 ` Masami Hiramatsu 2018-06-04 15:52 ` [RFC PATCH -tip v5 08/27] ia64: kprobes: Remove jprobe implementation Masami Hiramatsu 2018-06-04 15:52 ` Masami Hiramatsu 2018-06-04 15:52 ` [RFC PATCH -tip v5 09/27] MIPS: " Masami Hiramatsu 2018-06-04 15:53 ` [RFC PATCH -tip v5 10/27] s390/kprobes: " Masami Hiramatsu 2018-06-04 15:53 ` [RFC PATCH -tip v5 11/27] sh: kprobes: " Masami Hiramatsu 2018-06-04 15:53 ` Masami Hiramatsu 2018-06-04 15:54 ` Masami Hiramatsu [this message] 2018-06-04 15:54 ` [RFC PATCH -tip v5 12/27] sparc64: " Masami Hiramatsu 2018-06-04 15:54 ` [RFC PATCH -tip v5 13/27] kprobes: Don't check the ->break_handler() in generic kprobes code Masami Hiramatsu 2018-06-04 15:55 ` [RFC PATCH -tip v5 14/27] kprobes/x86: Don't call ->break_handler() in x86 kprobes Masami Hiramatsu 2018-06-04 15:55 ` [RFC PATCH -tip v5 15/27] ARC: kprobes: Don't call the ->break_handler() in ARC kprobes code Masami Hiramatsu 2018-06-04 15:55 ` Masami Hiramatsu 2018-06-04 15:56 ` [RFC PATCH -tip v5 16/27] ARM: kprobes: Don't call the ->break_handler() in arm " Masami Hiramatsu 2018-06-04 15:56 ` Masami Hiramatsu 2018-06-04 15:56 ` [RFC PATCH -tip v5 17/27] arm64: " Masami Hiramatsu 2018-06-04 15:56 ` Masami Hiramatsu 2018-06-05 15:37 ` Will Deacon 2018-06-05 15:37 ` Will Deacon 2018-06-04 15:57 ` [RFC PATCH -tip v5 18/27] powerpc/kprobes: " Masami Hiramatsu 2018-06-07 11:37 ` Naveen N. Rao 2018-06-07 11:37 ` Naveen N. Rao 2018-06-07 14:28 ` Masami Hiramatsu 2018-06-07 16:37 ` Naveen N. Rao 2018-06-07 16:37 ` Naveen N. Rao 2018-06-08 0:42 ` Masami Hiramatsu 2018-06-04 15:57 ` [RFC PATCH -tip v5 19/27] ia64: kprobes: Don't call the ->break_handler() in ia64 " Masami Hiramatsu 2018-06-04 15:57 ` Masami Hiramatsu 2018-06-04 15:58 ` [RFC PATCH -tip v5 20/27] MIPS: kprobes: Don't call the ->break_handler() in MIPS " Masami Hiramatsu 2018-06-04 15:58 ` [RFC PATCH -tip v5 21/27] s390/kprobes: Don't call the ->break_handler() in s390 " Masami Hiramatsu 2018-06-04 15:59 ` [RFC PATCH -tip v5 22/27] sh: kprobes: Don't call the ->break_handler() in SH " Masami Hiramatsu 2018-06-04 15:59 ` Masami Hiramatsu 2018-06-04 15:59 ` [RFC PATCH -tip v5 23/27] sparc64: kprobes: Don't call the ->break_handler() in sparc64 " Masami Hiramatsu 2018-06-04 15:59 ` Masami Hiramatsu 2018-06-04 16:00 ` [RFC PATCH -tip v5 24/27] bpf: error-inject: kprobes: Clear current_kprobe and enable preempt in kpr Masami Hiramatsu 2018-06-04 16:00 ` [RFC PATCH -tip v5 24/27] bpf: error-inject: kprobes: Clear current_kprobe and enable preempt in kprobe Masami Hiramatsu 2018-06-04 16:00 ` Masami Hiramatsu 2018-06-04 16:00 ` Masami Hiramatsu 2018-06-04 16:00 ` Masami Hiramatsu 2018-06-07 11:42 ` Naveen N. Rao 2018-06-07 11:54 ` [RFC PATCH -tip v5 24/27] bpf: error-inject: kprobes: Clear current_kprobe and enable preempt in Naveen N. Rao 2018-06-07 11:42 ` [RFC PATCH -tip v5 24/27] bpf: error-inject: kprobes: Clear current_kprobe and enable preempt in kprobe Naveen N. Rao 2018-06-07 11:42 ` Naveen N. Rao 2018-06-07 11:42 ` Naveen N. Rao 2018-06-07 11:42 ` Naveen N. Rao 2018-06-04 16:00 ` [RFC PATCH -tip v5 25/27] kprobes/x86: Do not disable preempt on int3 path Masami Hiramatsu 2018-06-04 16:00 ` Masami Hiramatsu 2018-06-04 16:01 ` [RFC PATCH -tip v5 26/27] Documentation: kprobes: Add how to change the execution path Masami Hiramatsu 2018-06-04 16:01 ` Masami Hiramatsu 2018-06-04 16:01 ` [RFC PATCH -tip v5 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=152812765990.10068.4986702684441309090.stgit@devbox \ --to=mhiramat@kernel.org \ --cc=akpm@linux-foundation.org \ --cc=ananth@linux.vnet.ibm.com \ --cc=davem@davemloft.net \ --cc=hpa@zytor.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@kernel.org \ --cc=mingo@redhat.com \ --cc=rostedt@goodmis.org \ --cc=sparclinux@vger.kernel.org \ --cc=tglx@linutronix.de \ /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.