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

From: Ravi Bangoria
Date: Mon Dec 03 2018 - 01:22:25 EST


Hi Steve,

Please pull this patch.

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.
>