|
@@ -20,12 +20,6 @@
|
|
|
#include <asm/code-patching.h>
|
|
|
#include <asm/ftrace.h>
|
|
|
|
|
|
-#if 0
|
|
|
-#define DEBUGP printk
|
|
|
-#else
|
|
|
-#define DEBUGP(fmt , ...) do { } while (0)
|
|
|
-#endif
|
|
|
-
|
|
|
static unsigned int ftrace_nop = PPC_NOP_INSTR;
|
|
|
|
|
|
#ifdef CONFIG_PPC32
|
|
@@ -175,7 +169,7 @@ __ftrace_make_nop(struct module *mod,
|
|
|
* 0xe8, 0x4c, 0x00, 0x28, ld r2,40(r12)
|
|
|
*/
|
|
|
|
|
|
- DEBUGP("ip:%lx jumps to %lx r2: %lx", ip, tramp, mod->arch.toc);
|
|
|
+ pr_debug("ip:%lx jumps to %lx r2: %lx", ip, tramp, mod->arch.toc);
|
|
|
|
|
|
/* Find where the trampoline jumps to */
|
|
|
if (probe_kernel_read(jmp, (void *)tramp, sizeof(jmp))) {
|
|
@@ -183,7 +177,7 @@ __ftrace_make_nop(struct module *mod,
|
|
|
return -EFAULT;
|
|
|
}
|
|
|
|
|
|
- DEBUGP(" %08x %08x", jmp[0], jmp[1]);
|
|
|
+ pr_debug(" %08x %08x", jmp[0], jmp[1]);
|
|
|
|
|
|
/* verify that this is what we expect it to be */
|
|
|
if (((jmp[0] & 0xffff0000) != 0x3d820000) ||
|
|
@@ -199,18 +193,18 @@ __ftrace_make_nop(struct module *mod,
|
|
|
offset = ((unsigned)((unsigned short)jmp[0]) << 16) +
|
|
|
(int)((short)jmp[1]);
|
|
|
|
|
|
- DEBUGP(" %x ", offset);
|
|
|
+ pr_debug(" %x ", offset);
|
|
|
|
|
|
/* get the address this jumps too */
|
|
|
tramp = mod->arch.toc + offset + 32;
|
|
|
- DEBUGP("toc: %lx", tramp);
|
|
|
+ pr_debug("toc: %lx", tramp);
|
|
|
|
|
|
if (probe_kernel_read(jmp, (void *)tramp, 8)) {
|
|
|
printk(KERN_ERR "Failed to read %lx\n", tramp);
|
|
|
return -EFAULT;
|
|
|
}
|
|
|
|
|
|
- DEBUGP(" %08x %08x\n", jmp[0], jmp[1]);
|
|
|
+ pr_debug(" %08x %08x\n", jmp[0], jmp[1]);
|
|
|
|
|
|
ptr = ((unsigned long)jmp[0] << 32) + jmp[1];
|
|
|
|
|
@@ -287,7 +281,7 @@ __ftrace_make_nop(struct module *mod,
|
|
|
* 0x4e, 0x80, 0x04, 0x20 bctr
|
|
|
*/
|
|
|
|
|
|
- DEBUGP("ip:%lx jumps to %lx", ip, tramp);
|
|
|
+ pr_debug("ip:%lx jumps to %lx", ip, tramp);
|
|
|
|
|
|
/* Find where the trampoline jumps to */
|
|
|
if (probe_kernel_read(jmp, (void *)tramp, sizeof(jmp))) {
|
|
@@ -295,7 +289,7 @@ __ftrace_make_nop(struct module *mod,
|
|
|
return -EFAULT;
|
|
|
}
|
|
|
|
|
|
- DEBUGP(" %08x %08x ", jmp[0], jmp[1]);
|
|
|
+ pr_debug(" %08x %08x ", jmp[0], jmp[1]);
|
|
|
|
|
|
/* verify that this is what we expect it to be */
|
|
|
if (((jmp[0] & 0xffff0000) != 0x3d600000) ||
|
|
@@ -311,7 +305,7 @@ __ftrace_make_nop(struct module *mod,
|
|
|
if (tramp & 0x8000)
|
|
|
tramp -= 0x10000;
|
|
|
|
|
|
- DEBUGP(" %x ", tramp);
|
|
|
+ pr_debug(" %x ", tramp);
|
|
|
|
|
|
if (tramp != addr) {
|
|
|
printk(KERN_ERR
|
|
@@ -414,7 +408,7 @@ __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
|
|
|
/* ld r2,40(r1) */
|
|
|
op[1] = 0xe8410028;
|
|
|
|
|
|
- DEBUGP("write to %lx\n", rec->ip);
|
|
|
+ pr_debug("write to %lx\n", rec->ip);
|
|
|
|
|
|
if (probe_kernel_write((void *)ip, op, MCOUNT_INSN_SIZE * 2))
|
|
|
return -EPERM;
|
|
@@ -454,7 +448,7 @@ __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- DEBUGP("write to %lx\n", rec->ip);
|
|
|
+ pr_debug("write to %lx\n", rec->ip);
|
|
|
|
|
|
if (probe_kernel_write((void *)ip, &op, MCOUNT_INSN_SIZE))
|
|
|
return -EPERM;
|