An ability to manipulate mm_struct fields was introduced in sake of CRIU in first place. Later we provide more suitable and safe operation PR_SET_MM_MAP where all fields to be modifed are passed in one structure which allows us to make more detailed verification.
Still old interface remains present for compatibility reason though CRIU itself already switched to PR_SET_MM_MAP on its own long ago. Googling didn't reveal some other users of this operation so I think it should be safe to issue deprecation warning first time and get rid of this interface after a couple of releases. CC: Andrey Vagin <[email protected]> CC: Andrew Morton <[email protected]> CC: Pavel Emelyanov <[email protected]> CC: Michael Kerrisk <[email protected]> CC: Yang Shi <[email protected]> CC: Michal Hocko <[email protected]> Signed-off-by: Cyrill Gorcunov <[email protected]> --- Or we can simply drop it off because PR_SET_MM_MAP covers all needs, and I would rather prefer to do that asap. kernel/sys.c | 2 ++ 1 file changed, 2 insertions(+) Index: linux-ml.git/kernel/sys.c =================================================================== --- linux-ml.git.orig/kernel/sys.c +++ linux-ml.git/kernel/sys.c @@ -2052,6 +2052,8 @@ static int prctl_set_mm(int opt, unsigne if (!capable(CAP_SYS_RESOURCE)) return -EPERM; + pr_warn_once("Non PR_SET_MM_MAP operations are deprecated\n"); + if (opt == PR_SET_MM_EXE_FILE) return prctl_set_mm_exe_file(mm, (unsigned int)addr);

