Re: [PATCH] Uprobes: Fix kernel oops with delayed_uprobe_remove()

From: Steven Rostedt
Date: Tue Dec 04 2018 - 00:58:12 EST


On Mon, 3 Dec 2018 11:52:41 +0530
Ravi Bangoria <ravi.bangoria@xxxxxxxxxxxxx> wrote:

> Hi Steve,
>
> Please pull this patch.
>

Please send a v2 version of the patch with the updated change log. And
should it have a Fixes and be tagged for stable?

-- Steve

> Thanks.
>
> On 11/15/18 6:13 PM, Oleg Nesterov wrote:
> > On 11/15, Ravi Bangoria wrote:
> >>
> >> There could be a race between task exit and probe unregister:
> >>
> >> exit_mm()
> >> mmput()
> >> __mmput() uprobe_unregister()
> >> uprobe_clear_state() put_uprobe()
> >> delayed_uprobe_remove() delayed_uprobe_remove()
> >>
> >> put_uprobe() is calling delayed_uprobe_remove() without taking
> >> delayed_uprobe_lock and thus the race sometimes results in a
> >> kernel crash. Fix this by taking delayed_uprobe_lock before
> >> calling delayed_uprobe_remove() from put_uprobe().
> >>
> >> Detailed crash log can be found at:
> >> https://lkml.org/lkml/2018/11/1/1244
> >
> > Thanks, looks good,
> >
> > Oleg.
> >