]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - include/linux/sched/coredump.h
mm: make PR_SET_THP_DISABLE immediately active
[mirror_ubuntu-artful-kernel.git] / include / linux / sched / coredump.h
CommitLineData
f7ccbae4
IM
1#ifndef _LINUX_SCHED_COREDUMP_H
2#define _LINUX_SCHED_COREDUMP_H
3
11701c67
IM
4#include <linux/mm_types.h>
5
6#define SUID_DUMP_DISABLE 0 /* No setuid dumping */
7#define SUID_DUMP_USER 1 /* Dump as user of process */
8#define SUID_DUMP_ROOT 2 /* Dump as root */
9
10/* mm flags */
11
12/* for SUID_DUMP_* above */
13#define MMF_DUMPABLE_BITS 2
14#define MMF_DUMPABLE_MASK ((1 << MMF_DUMPABLE_BITS) - 1)
15
16extern void set_dumpable(struct mm_struct *mm, int value);
17/*
18 * This returns the actual value of the suid_dumpable flag. For things
19 * that are using this for checking for privilege transitions, it must
20 * test against SUID_DUMP_USER rather than treating it as a boolean
21 * value.
22 */
23static inline int __get_dumpable(unsigned long mm_flags)
24{
25 return mm_flags & MMF_DUMPABLE_MASK;
26}
27
28static inline int get_dumpable(struct mm_struct *mm)
29{
30 return __get_dumpable(mm->flags);
31}
32
33/* coredump filter bits */
34#define MMF_DUMP_ANON_PRIVATE 2
35#define MMF_DUMP_ANON_SHARED 3
36#define MMF_DUMP_MAPPED_PRIVATE 4
37#define MMF_DUMP_MAPPED_SHARED 5
38#define MMF_DUMP_ELF_HEADERS 6
39#define MMF_DUMP_HUGETLB_PRIVATE 7
40#define MMF_DUMP_HUGETLB_SHARED 8
41#define MMF_DUMP_DAX_PRIVATE 9
42#define MMF_DUMP_DAX_SHARED 10
43
44#define MMF_DUMP_FILTER_SHIFT MMF_DUMPABLE_BITS
45#define MMF_DUMP_FILTER_BITS 9
46#define MMF_DUMP_FILTER_MASK \
47 (((1 << MMF_DUMP_FILTER_BITS) - 1) << MMF_DUMP_FILTER_SHIFT)
48#define MMF_DUMP_FILTER_DEFAULT \
49 ((1 << MMF_DUMP_ANON_PRIVATE) | (1 << MMF_DUMP_ANON_SHARED) |\
50 (1 << MMF_DUMP_HUGETLB_PRIVATE) | MMF_DUMP_MASK_DEFAULT_ELF)
51
52#ifdef CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS
53# define MMF_DUMP_MASK_DEFAULT_ELF (1 << MMF_DUMP_ELF_HEADERS)
54#else
55# define MMF_DUMP_MASK_DEFAULT_ELF 0
56#endif
57 /* leave room for more dump flags */
58#define MMF_VM_MERGEABLE 16 /* KSM may merge identical pages */
59#define MMF_VM_HUGEPAGE 17 /* set when VM_HUGEPAGE is set on vma */
60/*
61 * This one-shot flag is dropped due to necessity of changing exe once again
62 * on NFS restore
63 */
64//#define MMF_EXE_FILE_CHANGED 18 /* see prctl_set_mm_exe_file() */
65
66#define MMF_HAS_UPROBES 19 /* has uprobes */
67#define MMF_RECALC_UPROBES 20 /* MMF_HAS_UPROBES can be wrong */
68#define MMF_OOM_SKIP 21 /* mm is of no interest for the OOM killer */
69#define MMF_UNSTABLE 22 /* mm is unstable for copy_from_user */
70#define MMF_HUGE_ZERO_PAGE 23 /* mm has ever used the global huge zero page */
18600332
MH
71#define MMF_DISABLE_THP 24 /* disable THP for all VMAs */
72#define MMF_DISABLE_THP_MASK (1 << MMF_DISABLE_THP)
11701c67 73
18600332
MH
74#define MMF_INIT_MASK (MMF_DUMPABLE_MASK | MMF_DUMP_FILTER_MASK |\
75 MMF_DISABLE_THP_MASK)
f7ccbae4
IM
76
77#endif /* _LINUX_SCHED_COREDUMP_H */