lkml.org 
[lkml]   [2017]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 12/53] sched/headers: Move task->mm coredumping related defines and methods from <linux/sched.h> to <linux/sched/coredump.h>
    Date
    This further reduces the size and complexity of <linux/sched.h>.

    These are the definitions and APIs that are moved:

    # MMF_*:
    fs/binfmt_elf.c
    fs/binfmt_elf_fdpic.c
    fs/exec.c
    fs/proc/base.c
    include/linux/khugepaged.h
    include/linux/ksm.h
    include/linux/sched/coredump.h
    kernel/events/uprobes.c
    kernel/fork.c
    mm/huge_memory.c
    mm/khugepaged.c
    mm/ksm.c
    mm/memory.c
    mm/oom_kill.c

    # SUID_DUMP_*:
    arch/ia64/include/asm/processor.h
    fs/coredump.c
    fs/exec.c
    fs/proc/internal.h
    include/linux/sched/coredump.h
    kernel/ptrace.c
    kernel/sys.c
    kernel/sysctl.c

    # get_dumpable():
    arch/ia64/include/asm/processor.h
    fs/coredump.c
    fs/exec.c
    fs/proc/internal.h
    include/linux/sched/coredump.h
    kernel/ptrace.c
    kernel/sys.c

    # set_dumpable():
    fs/exec.c
    include/linux/sched/coredump.h
    kernel/cred.c
    kernel/sys.c

    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    ---
    include/linux/sched.h | 68 -------------------------------------------------------------
    include/linux/sched/coredump.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    2 files changed, 69 insertions(+), 68 deletions(-)

    diff --git a/include/linux/sched.h b/include/linux/sched.h
    index a3232d4c97da..4e1ca7d4b432 100644
    --- a/include/linux/sched.h
    +++ b/include/linux/sched.h
    @@ -361,74 +361,6 @@ arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr,
    static inline void arch_pick_mmap_layout(struct mm_struct *mm) {}
    #endif

    -#define SUID_DUMP_DISABLE 0 /* No setuid dumping */
    -#define SUID_DUMP_USER 1 /* Dump as user of process */
    -#define SUID_DUMP_ROOT 2 /* Dump as root */
    -
    -/* mm flags */
    -
    -/* for SUID_DUMP_* above */
    -#define MMF_DUMPABLE_BITS 2
    -#define MMF_DUMPABLE_MASK ((1 << MMF_DUMPABLE_BITS) - 1)
    -
    -extern void set_dumpable(struct mm_struct *mm, int value);
    -/*
    - * This returns the actual value of the suid_dumpable flag. For things
    - * that are using this for checking for privilege transitions, it must
    - * test against SUID_DUMP_USER rather than treating it as a boolean
    - * value.
    - */
    -static inline int __get_dumpable(unsigned long mm_flags)
    -{
    - return mm_flags & MMF_DUMPABLE_MASK;
    -}
    -
    -static inline int get_dumpable(struct mm_struct *mm)
    -{
    - return __get_dumpable(mm->flags);
    -}
    -
    -/* coredump filter bits */
    -#define MMF_DUMP_ANON_PRIVATE 2
    -#define MMF_DUMP_ANON_SHARED 3
    -#define MMF_DUMP_MAPPED_PRIVATE 4
    -#define MMF_DUMP_MAPPED_SHARED 5
    -#define MMF_DUMP_ELF_HEADERS 6
    -#define MMF_DUMP_HUGETLB_PRIVATE 7
    -#define MMF_DUMP_HUGETLB_SHARED 8
    -#define MMF_DUMP_DAX_PRIVATE 9
    -#define MMF_DUMP_DAX_SHARED 10
    -
    -#define MMF_DUMP_FILTER_SHIFT MMF_DUMPABLE_BITS
    -#define MMF_DUMP_FILTER_BITS 9
    -#define MMF_DUMP_FILTER_MASK \
    - (((1 << MMF_DUMP_FILTER_BITS) - 1) << MMF_DUMP_FILTER_SHIFT)
    -#define MMF_DUMP_FILTER_DEFAULT \
    - ((1 << MMF_DUMP_ANON_PRIVATE) | (1 << MMF_DUMP_ANON_SHARED) |\
    - (1 << MMF_DUMP_HUGETLB_PRIVATE) | MMF_DUMP_MASK_DEFAULT_ELF)
    -
    -#ifdef CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
    -# define MMF_DUMP_MASK_DEFAULT_ELF (1 << MMF_DUMP_ELF_HEADERS)
    -#else
    -# define MMF_DUMP_MASK_DEFAULT_ELF 0
    -#endif
    - /* leave room for more dump flags */
    -#define MMF_VM_MERGEABLE 16 /* KSM may merge identical pages */
    -#define MMF_VM_HUGEPAGE 17 /* set when VM_HUGEPAGE is set on vma */
    -/*
    - * This one-shot flag is dropped due to necessity of changing exe once again
    - * on NFS restore
    - */
    -//#define MMF_EXE_FILE_CHANGED 18 /* see prctl_set_mm_exe_file() */
    -
    -#define MMF_HAS_UPROBES 19 /* has uprobes */
    -#define MMF_RECALC_UPROBES 20 /* MMF_HAS_UPROBES can be wrong */
    -#define MMF_OOM_SKIP 21 /* mm is of no interest for the OOM killer */
    -#define MMF_UNSTABLE 22 /* mm is unstable for copy_from_user */
    -#define MMF_HUGE_ZERO_PAGE 23 /* mm has ever used the global huge zero page */
    -
    -#define MMF_INIT_MASK (MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK)
    -
    struct sighand_struct {
    atomic_t count;
    struct k_sigaction action[_NSIG];
    diff --git a/include/linux/sched/coredump.h b/include/linux/sched/coredump.h
    index ab81e564e076..f46912aa4f4c 100644
    --- a/include/linux/sched/coredump.h
    +++ b/include/linux/sched/coredump.h
    @@ -2,5 +2,74 @@
    #define _LINUX_SCHED_COREDUMP_H

    #include <linux/sched.h>
    +#include <linux/mm_types.h>
    +
    +#define SUID_DUMP_DISABLE 0 /* No setuid dumping */
    +#define SUID_DUMP_USER 1 /* Dump as user of process */
    +#define SUID_DUMP_ROOT 2 /* Dump as root */
    +
    +/* mm flags */
    +
    +/* for SUID_DUMP_* above */
    +#define MMF_DUMPABLE_BITS 2
    +#define MMF_DUMPABLE_MASK ((1 << MMF_DUMPABLE_BITS) - 1)
    +
    +extern void set_dumpable(struct mm_struct *mm, int value);
    +/*
    + * This returns the actual value of the suid_dumpable flag. For things
    + * that are using this for checking for privilege transitions, it must
    + * test against SUID_DUMP_USER rather than treating it as a boolean
    + * value.
    + */
    +static inline int __get_dumpable(unsigned long mm_flags)
    +{
    + return mm_flags & MMF_DUMPABLE_MASK;
    +}
    +
    +static inline int get_dumpable(struct mm_struct *mm)
    +{
    + return __get_dumpable(mm->flags);
    +}
    +
    +/* coredump filter bits */
    +#define MMF_DUMP_ANON_PRIVATE 2
    +#define MMF_DUMP_ANON_SHARED 3
    +#define MMF_DUMP_MAPPED_PRIVATE 4
    +#define MMF_DUMP_MAPPED_SHARED 5
    +#define MMF_DUMP_ELF_HEADERS 6
    +#define MMF_DUMP_HUGETLB_PRIVATE 7
    +#define MMF_DUMP_HUGETLB_SHARED 8
    +#define MMF_DUMP_DAX_PRIVATE 9
    +#define MMF_DUMP_DAX_SHARED 10
    +
    +#define MMF_DUMP_FILTER_SHIFT MMF_DUMPABLE_BITS
    +#define MMF_DUMP_FILTER_BITS 9
    +#define MMF_DUMP_FILTER_MASK \
    + (((1 << MMF_DUMP_FILTER_BITS) - 1) << MMF_DUMP_FILTER_SHIFT)
    +#define MMF_DUMP_FILTER_DEFAULT \
    + ((1 << MMF_DUMP_ANON_PRIVATE) | (1 << MMF_DUMP_ANON_SHARED) |\
    + (1 << MMF_DUMP_HUGETLB_PRIVATE) | MMF_DUMP_MASK_DEFAULT_ELF)
    +
    +#ifdef CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
    +# define MMF_DUMP_MASK_DEFAULT_ELF (1 << MMF_DUMP_ELF_HEADERS)
    +#else
    +# define MMF_DUMP_MASK_DEFAULT_ELF 0
    +#endif
    + /* leave room for more dump flags */
    +#define MMF_VM_MERGEABLE 16 /* KSM may merge identical pages */
    +#define MMF_VM_HUGEPAGE 17 /* set when VM_HUGEPAGE is set on vma */
    +/*
    + * This one-shot flag is dropped due to necessity of changing exe once again
    + * on NFS restore
    + */
    +//#define MMF_EXE_FILE_CHANGED 18 /* see prctl_set_mm_exe_file() */
    +
    +#define MMF_HAS_UPROBES 19 /* has uprobes */
    +#define MMF_RECALC_UPROBES 20 /* MMF_HAS_UPROBES can be wrong */
    +#define MMF_OOM_SKIP 21 /* mm is of no interest for the OOM killer */
    +#define MMF_UNSTABLE 22 /* mm is unstable for copy_from_user */
    +#define MMF_HUGE_ZERO_PAGE 23 /* mm has ever used the global huge zero page */
    +
    +#define MMF_INIT_MASK (MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK)

    #endif /* _LINUX_SCHED_COREDUMP_H */
    --
    2.7.4
    \
     
     \ /
      Last update: 2017-02-08 19:56    [W:5.077 / U:0.784 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site