Re: [PATCH 6/7] uprobes: Allow the use of uprobe_warn() in arch code
From: Oleg Nesterov
Date: Wed Mar 19 2025 - 11:01:46 EST
On 03/18, Jeremy Linton wrote:
>
> --- a/include/linux/uprobes.h
> +++ b/include/linux/uprobes.h
> @@ -185,6 +185,7 @@ struct uprobes_state {
> };
>
> extern void __init uprobes_init(void);
> +extern void uprobe_warn(struct task_struct *t, const char *msg);
> extern int set_swbp(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long vaddr);
> extern int set_orig_insn(struct arch_uprobe *aup, struct mm_struct *mm, unsigned long vaddr);
> extern bool is_swbp_insn(uprobe_opcode_t *insn);
> diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
> index b4ca8898fe17..613c1c76f227 100644
> --- a/kernel/events/uprobes.c
> +++ b/kernel/events/uprobes.c
> @@ -118,7 +118,7 @@ struct xol_area {
> unsigned long vaddr; /* Page(s) of instruction slots */
> };
>
> -static void uprobe_warn(struct task_struct *t, const char *msg)
> +void uprobe_warn(struct task_struct *t, const char *msg)
> {
> pr_warn("uprobe: %s:%d failed to %s\n", current->comm, current->pid, msg);
> }
Oh, no, please don't.
uprobe_warn() is ugly and needs changes. If nothing else it doesn't even use
its "t" argument.
Oleg.