Browse Source

[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.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Rusty Lynch 20 years ago
parent
commit
6772926bef

+ 1 - 1
arch/i386/kernel/kprobes.c

@@ -537,7 +537,7 @@ static struct kprobe trampoline_p = {
 	.pre_handler = trampoline_probe_handler
 	.pre_handler = trampoline_probe_handler
 };
 };
 
 
-int __init arch_init(void)
+int __init arch_init_kprobes(void)
 {
 {
 	return register_kprobe(&trampoline_p);
 	return register_kprobe(&trampoline_p);
 }
 }

+ 1 - 1
arch/ia64/kernel/kprobes.c

@@ -713,7 +713,7 @@ static struct kprobe trampoline_p = {
 	.pre_handler = trampoline_probe_handler
 	.pre_handler = trampoline_probe_handler
 };
 };
 
 
-int __init arch_init(void)
+int __init arch_init_kprobes(void)
 {
 {
 	trampoline_p.addr =
 	trampoline_p.addr =
 		(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip;
 		(kprobe_opcode_t *)((struct fnptr *)kretprobe_trampoline)->ip;

+ 1 - 1
arch/ppc64/kernel/kprobes.c

@@ -444,7 +444,7 @@ static struct kprobe trampoline_p = {
 	.pre_handler = trampoline_probe_handler
 	.pre_handler = trampoline_probe_handler
 };
 };
 
 
-int __init arch_init(void)
+int __init arch_init_kprobes(void)
 {
 {
 	return register_kprobe(&trampoline_p);
 	return register_kprobe(&trampoline_p);
 }
 }

+ 5 - 0
arch/sparc64/kernel/kprobes.c

@@ -433,3 +433,8 @@ int longjmp_break_handler(struct kprobe *p, struct pt_regs *regs)
 	return 0;
 	return 0;
 }
 }
 
 
+/* architecture specific initialization */
+int arch_init_kprobes(void)
+{
+	return 0;
+}

+ 1 - 1
arch/x86_64/kernel/kprobes.c

@@ -682,7 +682,7 @@ static struct kprobe trampoline_p = {
 	.pre_handler = trampoline_probe_handler
 	.pre_handler = trampoline_probe_handler
 };
 };
 
 
-int __init arch_init(void)
+int __init arch_init_kprobes(void)
 {
 {
 	return register_kprobe(&trampoline_p);
 	return register_kprobe(&trampoline_p);
 }
 }

+ 1 - 1
include/linux/kprobes.h

@@ -155,7 +155,7 @@ extern void arch_copy_kprobe(struct kprobe *p);
 extern void arch_arm_kprobe(struct kprobe *p);
 extern void arch_arm_kprobe(struct kprobe *p);
 extern void arch_disarm_kprobe(struct kprobe *p);
 extern void arch_disarm_kprobe(struct kprobe *p);
 extern void arch_remove_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 void show_registers(struct pt_regs *regs);
 extern kprobe_opcode_t *get_insn_slot(void);
 extern kprobe_opcode_t *get_insn_slot(void);
 extern void free_insn_slot(kprobe_opcode_t *slot);
 extern void free_insn_slot(kprobe_opcode_t *slot);

+ 1 - 1
kernel/kprobes.c

@@ -574,7 +574,7 @@ static int __init init_kprobes(void)
 		INIT_HLIST_HEAD(&kretprobe_inst_table[i]);
 		INIT_HLIST_HEAD(&kretprobe_inst_table[i]);
 	}
 	}
 
 
-	err = arch_init();
+	err = arch_init_kprobes();
 	if (!err)
 	if (!err)
 		err = register_die_notifier(&kprobe_exceptions_nb);
 		err = register_die_notifier(&kprobe_exceptions_nb);