mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-17 09:14:19 +08:00
[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 ret = 0;
|
||||
kprobe_opcode_t insn = *p->addr;
|
||||
|
||||
if (IS_MTMSRD(insn) || IS_RFID(insn))
|
||||
/* cannot put bp on RFID/MTMSRD */
|
||||
return 1;
|
||||
return 0;
|
||||
if ((unsigned long)p->addr & 0x03) {
|
||||
printk("Attempt to register kprobe at an unaligned address\n");
|
||||
ret = -EINVAL;
|
||||
} 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)
|
||||
|
Loading…
Reference in New Issue
Block a user