It is a preparatory patch so next we will make prctl_set_mm_map to accept struct prctl_mm_map as an argument and the only thing prctl_set_mm_map will do is to setup new memory map, not handling any other operations. CC: Jonathan de Boyne Pollard CC: Andrey Vagin CC: Andrew Morton CC: Michael Kerrisk CC: Yang Shi CC: Michal Hocko Signed-off-by: Cyrill Gorcunov --- kernel/sys.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) Index: linux-ml.git/kernel/sys.c =================================================================== --- linux-ml.git.orig/kernel/sys.c +++ linux-ml.git/kernel/sys.c @@ -1979,10 +1979,6 @@ static int prctl_set_mm_map(int opt, con BUILD_BUG_ON(sizeof(user_auxv) != sizeof(mm->saved_auxv)); BUILD_BUG_ON(sizeof(struct prctl_mm_map) > 256); - if (opt == PR_SET_MM_MAP_SIZE) - return put_user((unsigned int)sizeof(prctl_map), - (unsigned int __user *)addr); - if (data_size != sizeof(prctl_map)) return -EINVAL; @@ -2063,7 +2059,11 @@ static int prctl_set_mm(int opt, unsigne unsigned long arg4, unsigned long arg5) { #ifdef CONFIG_CHECKPOINT_RESTORE - if (opt == PR_SET_MM_MAP || opt == PR_SET_MM_MAP_SIZE) + if (opt == PR_SET_MM_MAP_SIZE) + return put_user((unsigned int)sizeof(struct prctl_mm_map), + (unsigned int __user *)addr); + + if (opt == PR_SET_MM_MAP) return prctl_set_mm_map(opt, (const void __user *)addr, arg4); #endif