@@ -175,12 +175,6 @@ void arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs)
instruction_pointer_set(regs, utask->vaddr);
}
-int arch_uprobe_exception_notify(struct notifier_block *self,
- unsigned long val, void *data)
-{
- return NOTIFY_DONE;
-}
-
static int uprobe_trap_handler(struct pt_regs *regs, unsigned int instr)
{
unsigned long flags;
@@ -159,12 +159,6 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr,
return orig_ret_vaddr;
}
-int arch_uprobe_exception_notify(struct notifier_block *self,
- unsigned long val, void *data)
-{
- return NOTIFY_DONE;
-}
-
static int uprobe_breakpoint_handler(struct pt_regs *regs,
unsigned long esr)
{
@@ -132,12 +132,6 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr,
return ra;
}
-int arch_uprobe_exception_notify(struct notifier_block *self,
- unsigned long val, void *data)
-{
- return NOTIFY_DONE;
-}
-
int uprobe_breakpoint_handler(struct pt_regs *regs)
{
if (uprobe_pre_sstep_notifier(regs))
@@ -131,12 +131,6 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr,
return ra;
}
-int arch_uprobe_exception_notify(struct notifier_block *self,
- unsigned long val, void *data)
-{
- return NOTIFY_DONE;
-}
-
bool uprobe_breakpoint_handler(struct pt_regs *regs)
{
if (uprobe_pre_sstep_notifier(regs))
@@ -2343,6 +2343,12 @@ int uprobe_post_sstep_notifier(struct pt_regs *regs)
return 1;
}
+int __weak arch_uprobe_exception_notify(struct notifier_block *self,
+ unsigned long val, void *data)
+{
+ return NOTIFY_DONE;
+}
+
static struct notifier_block uprobe_exception_nb = {
.notifier_call = arch_uprobe_exception_notify,
.priority = INT_MAX-1, /* notified after kprobes, kgdb */
The function implementation under some arch does nothing. We can mark it with weak attributes to improve. Signed-off-by: Yipeng Zou <zouyipeng@huawei.com> --- arch/arm/probes/uprobes/core.c | 6 ------ arch/arm64/kernel/probes/uprobes.c | 6 ------ arch/csky/kernel/probes/uprobes.c | 6 ------ arch/riscv/kernel/probes/uprobes.c | 6 ------ kernel/events/uprobes.c | 6 ++++++ 5 files changed, 6 insertions(+), 24 deletions(-)