diff options
Diffstat (limited to 'arch/csky/kernel/probes/kprobes.c')
| -rw-r--r-- | arch/csky/kernel/probes/kprobes.c | 14 | 
1 files changed, 7 insertions, 7 deletions
| diff --git a/arch/csky/kernel/probes/kprobes.c b/arch/csky/kernel/probes/kprobes.c index 8fffa34d4e1c..42920f25e73c 100644 --- a/arch/csky/kernel/probes/kprobes.c +++ b/arch/csky/kernel/probes/kprobes.c @@ -1,5 +1,7 @@  // SPDX-License-Identifier: GPL-2.0+ +#define pr_fmt(fmt) "kprobes: " fmt +  #include <linux/kprobes.h>  #include <linux/extable.h>  #include <linux/slab.h> @@ -77,10 +79,8 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)  {  	unsigned long probe_addr = (unsigned long)p->addr; -	if (probe_addr & 0x1) { -		pr_warn("Address not aligned.\n"); -		return -EINVAL; -	} +	if (probe_addr & 0x1) +		return -EILSEQ;  	/* copy instruction */  	p->opcode = le32_to_cpu(*p->addr); @@ -225,7 +225,7 @@ static int __kprobes reenter_kprobe(struct kprobe *p,  		break;  	case KPROBE_HIT_SS:  	case KPROBE_REENTER: -		pr_warn("Unrecoverable kprobe detected.\n"); +		pr_warn("Failed to recover from reentered kprobes.\n");  		dump_kprobe(p);  		BUG();  		break; @@ -386,7 +386,7 @@ int __init arch_populate_kprobe_blacklist(void)  void __kprobes __used *trampoline_probe_handler(struct pt_regs *regs)  { -	return (void *)kretprobe_trampoline_handler(regs, &kretprobe_trampoline, NULL); +	return (void *)kretprobe_trampoline_handler(regs, NULL);  }  void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri, @@ -394,7 +394,7 @@ void __kprobes arch_prepare_kretprobe(struct kretprobe_instance *ri,  {  	ri->ret_addr = (kprobe_opcode_t *)regs->lr;  	ri->fp = NULL; -	regs->lr = (unsigned long) &kretprobe_trampoline; +	regs->lr = (unsigned long) &__kretprobe_trampoline;  }  int __kprobes arch_trampoline_kprobe(struct kprobe *p) |