Re: [PATCH v2 4/5] exec: Move exec_mmap right after de_thread in flush_old_exec

From: Bernd Edlinger
Date: Mon Mar 09 2020 - 16:03:52 EST


On 3/9/20 8:58 PM, Eric W. Biederman wrote:
>
> Ok. I think this has it sorted:
>
> exec: Move exec_mmap right after de_thread in flush_old_exec
>
> I have read through the code in exec_mmap and I do not see anything
> that depends on sighand or the sighand lock, or on signals in anyway
> so this should be safe.
>
> This rearrangement of code has two significant benefits. It makes
> the determination of passing the point of no return by testing bprm->mm
> accurate. All failures prior to that point in flush_old_exec are
> either truly recoverable or they are fatal.
>
> Further this consolidates all of the possible indefinite waits for
> userspace together at the top of flush_old_exec. The possible wait
> for a ptracer on PTRACE_EVENT_EXIT, the possible wait for a page fault
> to be resolved in clear_child_tid, and the possible wait for a page
> fault in exit_robust_list.
>
> This consolidation allows the creation of a mutex to replace
> cred_guard_mutex that is not held over possible indefinite userspace
> waits. Which will allow removing deadlock scenarios from the kernel.
>
> Reviewed-by: Bernd Edlinger <bernd.edlinger@xxxxxxxxxx>
> Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
>
>
> I don't think I usually have this many typos. Sigh.
>

OK.

never mind,
Bernd.