mm: add a NO_INHERIT flag to the PR_SET_MDWE prctl
authorFlorent Revest <revest@chromium.org>
Mon, 28 Aug 2023 15:08:57 +0000 (17:08 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 6 Oct 2023 21:44:11 +0000 (14:44 -0700)
commit24e41bf8a6b424c76c5902fb999e9eca61bdf83d
tree37d5b6d27bb8816b49f9059320ad9f084bfec98d
parent0da668333fb07805c2836d5d50e26eda915b24a1
mm: add a NO_INHERIT flag to the PR_SET_MDWE prctl

This extends the current PR_SET_MDWE prctl arg with a bit to indicate that
the process doesn't want MDWE protection to propagate to children.

To implement this no-inherit mode, the tag in current->mm->flags must be
absent from MMF_INIT_MASK.  This means that the encoding for "MDWE but
without inherit" is different in the prctl than in the mm flags.  This
leads to a bit of bit-mangling in the prctl implementation.

Link: https://lkml.kernel.org/r/20230828150858.393570-6-revest@chromium.org
Signed-off-by: Florent Revest <revest@chromium.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Alexey Izbyshev <izbyshev@ispras.ru>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Ayush Jain <ayush.jain3@amd.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Greg Thelen <gthelen@google.com>
Cc: Joey Gouly <joey.gouly@arm.com>
Cc: KP Singh <kpsingh@kernel.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Szabolcs Nagy <Szabolcs.Nagy@arm.com>
Cc: Topi Miettinen <toiwoton@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/sched/coredump.h
include/uapi/linux/prctl.h
kernel/fork.c
kernel/sys.c
tools/include/uapi/linux/prctl.h