On 2017/09/15 05:53PM, Oleg Nesterov wrote:
> 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, ...) ?

Good point. In fact, I think we can just use pr_fmt().

Thanks,
Naveen

Reply via email to