The patch titled Subject: mm: introduce check_data_rlimit helper has been added to the -mm tree. Its filename is mm-introduce-check_data_rlimit-helper-v2.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-introduce-check_data_rlimit-helper-v2.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-introduce-check_data_rlimit-helper-v2.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Cyrill Gorcunov <gorcunov@xxxxxxxxxx> Subject: mm: introduce check_data_rlimit helper To eliminate code duplication lets introduce check_data_rlimit helper which we will use in brk() and prctl() syscalls. Signed-off-by: Cyrill Gorcunov <gorcunov@xxxxxxxxxx> Cc: Kees Cook <keescook@xxxxxxxxxxxx> Cc: Tejun Heo <tj@xxxxxxxxxx> Cc: Andrew Vagin <avagin@xxxxxxxxxx> Cc: Eric W. Biederman <ebiederm@xxxxxxxxxxxx> Cc: H. Peter Anvin <hpa@xxxxxxxxx> Acked-by: Serge Hallyn <serge.hallyn@xxxxxxxxxxxxx> Cc: Pavel Emelyanov <xemul@xxxxxxxxxxxxx> Cc: Vasiliy Kulikov <segoon@xxxxxxxxxxxx> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> Cc: Michael Kerrisk <mtk.manpages@xxxxxxxxx> Cc: Julien Tinnes <jln@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/mm.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff -puN include/linux/mm.h~mm-introduce-check_data_rlimit-helper-v2 include/linux/mm.h --- a/include/linux/mm.h~mm-introduce-check_data_rlimit-helper-v2 +++ a/include/linux/mm.h @@ -18,6 +18,7 @@ #include <linux/pfn.h> #include <linux/bit_spinlock.h> #include <linux/shrinker.h> +#include <linux/resource.h> struct mempolicy; struct anon_vma; @@ -1780,6 +1781,20 @@ extern struct vm_area_struct *copy_vma(s bool *need_rmap_locks); extern void exit_mmap(struct mm_struct *); +static inline int check_data_rlimit(unsigned long rlim, + unsigned long new, + unsigned long start, + unsigned long end_data, + unsigned long start_data) +{ + if (rlim < RLIM_INFINITY) { + if (((new - start) + (end_data - start_data)) > rlim) + return -ENOSPC; + } + + return 0; +} + extern int mm_take_all_locks(struct mm_struct *mm); extern void mm_drop_all_locks(struct mm_struct *mm); _ Patches currently in -mm which might be from gorcunov@xxxxxxxxxx are mm-introduce-check_data_rlimit-helper-v2.patch mm-use-may_adjust_brk-helper.patch prctl-pr_set_mm-factor-out-mmap_sem-when-update-mm-exe_file.patch prctl-pr_set_mm-introduce-pr_set_mm_map-operation-v3.patch prctl-pr_set_mm-introduce-pr_set_mm_map-operation-v3-fix.patch fs-proc-task_mmuc-dont-use-task-mm-in-m_start-and-show_map.patch fs-proc-task_mmuc-unify-simplify-do_maps_open-and-numa_maps_open.patch proc-introduce-proc_mem_open.patch fs-proc-task_mmuc-shift-mm_access-from-m_start-to-proc_maps_open.patch fs-proc-task_mmuc-simplify-the-vma_stop-logic.patch fs-proc-task_mmuc-cleanup-the-tail_vma-horror-in-m_next.patch fs-proc-task_mmuc-shift-priv-task-=-null-from-m_start-to-m_stop.patch fs-proc-task_mmuc-kill-the-suboptimal-and-confusing-m-version-logic.patch fs-proc-task_mmuc-simplify-m_start-to-make-it-readable.patch fs-proc-task_mmuc-introduce-m_next_vma-helper.patch fs-proc-task_mmuc-reintroduce-m-version-logic.patch fs-proc-task_mmuc-update-m-version-in-the-main-loop-in-m_start.patch fs-proc-task_nommuc-change-maps_open-to-use-__seq_open_private.patch fs-proc-task_nommuc-shift-mm_access-from-m_start-to-proc_maps_open.patch fs-proc-task_nommuc-dont-use-priv-task-mm.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html