This is the mail archive of the
systemtap@sources.redhat.com
mailing list for the systemtap project.
[patch][kprobes] fix namespace problem and sparc64 build
- From: Rusty Lynch <rusty dot lynch at intel dot com>
- To: Andrew Morton <akpm at osdl dot org>
- Cc: linux-kernel at vger dot kernel dot org, davem at davemloft dot net, systemtap at sources dot redhat dot com, Prasanna S Panchamukhi <prasanna at in dot ibm dot com>, Jim Keniston <jkenisto at us dot ibm dot com>, Anil S Keshavamurthy <anil dot s dot keshavamurthy at intel dot com>, Ananth N Mavinakayanahalli <amavin at redhat dot com>
- Date: Wed, 29 Jun 2005 11:25:35 -0700
- Subject: [patch][kprobes] fix namespace problem and sparc64 build
The following renames arch_init, a kprobes function for performing
any architecture specific initialization, to arch_init_kprobes in order
to cleanup the namespace.
Also, this patch adds arch_init_kprobes to sparc64 to fix the sparc64 kprobes
build from the last return probe patch.
--rusty
arch/i386/kernel/kprobes.c | 2 +-
arch/ia64/kernel/kprobes.c | 2 +-
arch/ppc64/kernel/kprobes.c | 2 +-
arch/sparc64/kernel/kprobes.c | 5 +++++
arch/x86_64/kernel/kprobes.c | 2 +-
include/linux/kprobes.h | 2 +-
kernel/kprobes.c | 2 +-
7 files changed, 11 insertions(+), 6 deletions(-)
Index: sparc64-linux-2.6.12-mm2/arch/i386/kernel/kprobes.c
===================================================================
--- sparc64-linux-2.6.12-mm2.orig/arch/i386/kernel/kprobes.c
+++ sparc64-linux-2.6.12-mm2/arch/i386/kernel/kprobes.c
@@ -537,7 +537,7 @@ static struct kprobe trampoline_p = {
.pre_handler = trampoline_probe_handler
};
-int __init arch_init(void)
+int __init arch_init_kprobes(void)
{
return register_kprobe(&trampoline_p);
}
Index: sparc64-linux-2.6.12-mm2/arch/ia64/kernel/kprobes.c
===================================================================
--- sparc64-linux-2.6.12-mm2.orig/arch/ia64/kernel/kprobes.c
+++ sparc64-linux-2.6.12-mm2/arch/ia64/kernel/kprobes.c
@@ -713,7 +713,7 @@ static struct kprobe trampoline_p = {
.pre_handler = trampoline_probe_handler
};
-int __init arch_init(void)
+int __init arch_init_kprobes(void)
{
trampoline_p.addr =
(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip;
Index: sparc64-linux-2.6.12-mm2/arch/ppc64/kernel/kprobes.c
===================================================================
--- sparc64-linux-2.6.12-mm2.orig/arch/ppc64/kernel/kprobes.c
+++ sparc64-linux-2.6.12-mm2/arch/ppc64/kernel/kprobes.c
@@ -444,7 +444,7 @@ static struct kprobe trampoline_p = {
.pre_handler = trampoline_probe_handler
};
-int __init arch_init(void)
+int __init arch_init_kprobes(void)
{
return register_kprobe(&trampoline_p);
}
Index: sparc64-linux-2.6.12-mm2/arch/sparc64/kernel/kprobes.c
===================================================================
--- sparc64-linux-2.6.12-mm2.orig/arch/sparc64/kernel/kprobes.c
+++ sparc64-linux-2.6.12-mm2/arch/sparc64/kernel/kprobes.c
@@ -433,3 +433,8 @@ int longjmp_break_handler(struct kprobe
return 0;
}
+/* architecture specific initialization */
+int arch_init_kprobes(void)
+{
+ return 0;
+}
Index: sparc64-linux-2.6.12-mm2/arch/x86_64/kernel/kprobes.c
===================================================================
--- sparc64-linux-2.6.12-mm2.orig/arch/x86_64/kernel/kprobes.c
+++ sparc64-linux-2.6.12-mm2/arch/x86_64/kernel/kprobes.c
@@ -682,7 +682,7 @@ static struct kprobe trampoline_p = {
.pre_handler = trampoline_probe_handler
};
-int __init arch_init(void)
+int __init arch_init_kprobes(void)
{
return register_kprobe(&trampoline_p);
}
Index: sparc64-linux-2.6.12-mm2/include/linux/kprobes.h
===================================================================
--- sparc64-linux-2.6.12-mm2.orig/include/linux/kprobes.h
+++ sparc64-linux-2.6.12-mm2/include/linux/kprobes.h
@@ -155,7 +155,7 @@ extern void arch_copy_kprobe(struct kpro
extern void arch_arm_kprobe(struct kprobe *p);
extern void arch_disarm_kprobe(struct kprobe *p);
extern void arch_remove_kprobe(struct kprobe *p);
-extern int arch_init(void);
+extern int arch_init_kprobes(void);
extern void show_registers(struct pt_regs *regs);
extern kprobe_opcode_t *get_insn_slot(void);
extern void free_insn_slot(kprobe_opcode_t *slot);
Index: sparc64-linux-2.6.12-mm2/kernel/kprobes.c
===================================================================
--- sparc64-linux-2.6.12-mm2.orig/kernel/kprobes.c
+++ sparc64-linux-2.6.12-mm2/kernel/kprobes.c
@@ -574,7 +574,7 @@ static int __init init_kprobes(void)
INIT_HLIST_HEAD(&kretprobe_inst_table[i]);
}
- err = arch_init();
+ err = arch_init_kprobes();
if (!err)
err = register_die_notifier(&kprobe_exceptions_nb);