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

From: Oleg Nesterov
Date: Thu Nov 15 2018 - 07:43:30 EST


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.