From: Prasanna S Panchamukhi <prasanna@in.ibm.com>
To: akpm@osdl.org, Andi Kleen <ak@suse.de>, davem@davemloft.net
Cc: linux-kernel@vger.kernel.org, ananth@in.ibm.com,
anil.s.keshavamurthy@intel.com, systemtap@sources.redhat.com
Subject: Re: [PATCH] [3/5] Switch Kprobes inline functions to __kprobes for ppc64
Date: Mon, 10 Apr 2006 11:29:38 +0530 [thread overview]
Message-ID: <20060410055938.GB23879@in.ibm.com> (raw)
In-Reply-To: <20060410055813.GA23879@in.ibm.com>
Andrew Morton pointed out that compiler might not inline the functions
marked for inline in kprobes. There by allowing the insertion of probes
on these kprobes routines, which might cause recursion. This patch
removes all such inline and adds them to kprobes section there by
disallowing probes on all such routines. Some of the routines can
even still be inlined, since these routines gets executed after
the kprobes had done necessay setup for reentrancy.
Signed-off-by: Prasanna S Panchamukhi <prasanna@in.ibm.com>
arch/powerpc/kernel/kprobes.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff -puN arch/powerpc/kernel/kprobes.c~kprobes-remove-inline-kprobe-functions-ppc64 arch/powerpc/kernel/kprobes.c
--- linux-2.6.17-rc1-mm2/arch/powerpc/kernel/kprobes.c~kprobes-remove-inline-kprobe-functions-ppc64 2006-04-10 11:00:06.000000000 +0530
+++ linux-2.6.17-rc1-mm2-prasanna/arch/powerpc/kernel/kprobes.c 2006-04-10 11:00:06.000000000 +0530
@@ -88,7 +88,7 @@ void __kprobes arch_remove_kprobe(struct
mutex_unlock(&kprobe_mutex);
}
-static inline void prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
+static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
{
kprobe_opcode_t insn = *p->ainsn.insn;
@@ -101,21 +101,21 @@ static inline void prepare_singlestep(st
regs->nip = (unsigned long)p->ainsn.insn;
}
-static inline void save_previous_kprobe(struct kprobe_ctlblk *kcb)
+static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb)
{
kcb->prev_kprobe.kp = kprobe_running();
kcb->prev_kprobe.status = kcb->kprobe_status;
kcb->prev_kprobe.saved_msr = kcb->kprobe_saved_msr;
}
-static inline void restore_previous_kprobe(struct kprobe_ctlblk *kcb)
+static void __kprobes restore_previous_kprobe(struct kprobe_ctlblk *kcb)
{
__get_cpu_var(current_kprobe) = kcb->prev_kprobe.kp;
kcb->kprobe_status = kcb->prev_kprobe.status;
kcb->kprobe_saved_msr = kcb->prev_kprobe.saved_msr;
}
-static inline void set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
+static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs,
struct kprobe_ctlblk *kcb)
{
__get_cpu_var(current_kprobe) = p;
@@ -141,7 +141,7 @@ void __kprobes arch_prepare_kretprobe(st
}
}
-static inline int kprobe_handler(struct pt_regs *regs)
+static int __kprobes kprobe_handler(struct pt_regs *regs)
{
struct kprobe *p;
int ret = 0;
@@ -334,7 +334,7 @@ static void __kprobes resume_execution(s
regs->nip = (unsigned long)p->addr + 4;
}
-static inline int post_kprobe_handler(struct pt_regs *regs)
+static int __kprobes post_kprobe_handler(struct pt_regs *regs)
{
struct kprobe *cur = kprobe_running();
struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
@@ -370,7 +370,7 @@ out:
return 1;
}
-static inline int kprobe_fault_handler(struct pt_regs *regs, int trapnr)
+static int __kprobes kprobe_fault_handler(struct pt_regs *regs, int trapnr)
{
struct kprobe *cur = kprobe_running();
struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
_
--
Prasanna S Panchamukhi
Linux Technology Center
India Software Labs, IBM Bangalore
Email: prasanna@in.ibm.com
Ph: 91-80-51776329
next prev parent reply other threads:[~2006-04-10 5:59 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-10 5:57 [PATCH] [1/5] Switch Kprobes inline functions to __kprobes for i386 Prasanna S Panchamukhi
2006-04-10 5:58 ` [PATCH] [2/5] Switch Kprobes inline functions to __kprobes for x86_64 Prasanna S Panchamukhi
2006-04-10 5:59 ` Prasanna S Panchamukhi [this message]
2006-04-10 6:00 ` [PATCH] [4/5] Switch Kprobes inline functions to __kprobes for ia64 Prasanna S Panchamukhi
2006-04-10 6:01 ` [PATCH] [5/5] Switch Kprobes inline functions to __kprobes for sparc64 Prasanna S Panchamukhi
2006-04-10 6:10 ` David S. Miller
2006-04-11 2:41 ` [PATCH] [2/5] Switch Kprobes inline functions to __kprobes for x86_64 Andi Kleen
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=20060410055938.GB23879@in.ibm.com \
--to=prasanna@in.ibm.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=ananth@in.ibm.com \
--cc=anil.s.keshavamurthy@intel.com \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=systemtap@sources.redhat.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®