On 09/14, Naveen N. Rao wrote:
>
> +static void uprobe_warn(struct task_struct *t, const char *msg)
> +{
> +     pr_warn("uprobe: %s:%d failed to %s\n",
> +                     current->comm, current->pid, msg);
> +}
> +
>  /*
>   * valid_vma: Verify if the specified vma is an executable vma
>   * Relax restrictions while unregistering: vm_flags might have
> @@ -1087,7 +1093,14 @@ int uprobe_mmap(struct vm_area_struct *vma)
>               if (!fatal_signal_pending(current) &&
>                   filter_chain(uprobe, UPROBE_FILTER_MMAP, vma->vm_mm)) {
>                       unsigned long vaddr = offset_to_vaddr(vma, 
> uprobe->offset);
> -                     install_breakpoint(uprobe, vma->vm_mm, vma, vaddr);
> +                     int ret = install_breakpoint(uprobe, vma->vm_mm, vma, 
> vaddr);
> +                     if (ret) {
> +                             char msg[64];
> +                             snprintf(msg, sizeof(msg),
> +                                             "setup probe at 0x%llx (%d)",
> +                                             uprobe->offset, ret);
> +                             uprobe_warn(current, (const char *)msg);

Agreed, but... this is cosmetic, but I don't really like this snprintf().

I won't insist too much, but wouldn't it better to turn uprobe_warn() into
uprobe_warn(struct task_struct *t, char *fmt, ...) ?

Oleg.

Reply via email to