[PATCH] ppc64 kprobes: correct kprobe registration return values
Add stricter checks during kprobe registration. Return correct error value so insmod doesn't succeed. Also printk reason for registration failure. Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
42442ed574
commit
63224d1e8b
|
@ -45,12 +45,17 @@ static struct pt_regs jprobe_saved_regs;
|
||||||
|
|
||||||
int arch_prepare_kprobe(struct kprobe *p)
|
int arch_prepare_kprobe(struct kprobe *p)
|
||||||
{
|
{
|
||||||
|
int ret = 0;
|
||||||
kprobe_opcode_t insn = *p->addr;
|
kprobe_opcode_t insn = *p->addr;
|
||||||
|
|
||||||
if (IS_MTMSRD(insn) || IS_RFID(insn))
|
if ((unsigned long)p->addr & 0x03) {
|
||||||
/* cannot put bp on RFID/MTMSRD */
|
printk("Attempt to register kprobe at an unaligned address\n");
|
||||||
return 1;
|
ret = -EINVAL;
|
||||||
return 0;
|
} else if (IS_MTMSRD(insn) || IS_RFID(insn)) {
|
||||||
|
printk("Cannot register a kprobe on rfid or mtmsrd\n");
|
||||||
|
ret = -EINVAL;
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void arch_copy_kprobe(struct kprobe *p)
|
void arch_copy_kprobe(struct kprobe *p)
|
||||||
|
|
Reference in New Issue