diff options
Diffstat (limited to 'fs/binfmt_elf.c')
-rw-r--r-- | fs/binfmt_elf.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 6b659967898e..5f399ea1d20a 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/utsname.h> | 35 | #include <linux/utsname.h> |
36 | #include <linux/coredump.h> | 36 | #include <linux/coredump.h> |
37 | #include <linux/sched.h> | 37 | #include <linux/sched.h> |
38 | #include <linux/dax.h> | ||
38 | #include <asm/uaccess.h> | 39 | #include <asm/uaccess.h> |
39 | #include <asm/param.h> | 40 | #include <asm/param.h> |
40 | #include <asm/page.h> | 41 | #include <asm/page.h> |
@@ -1236,6 +1237,15 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma, | |||
1236 | if (vma->vm_flags & VM_DONTDUMP) | 1237 | if (vma->vm_flags & VM_DONTDUMP) |
1237 | return 0; | 1238 | return 0; |
1238 | 1239 | ||
1240 | /* support for DAX */ | ||
1241 | if (vma_is_dax(vma)) { | ||
1242 | if ((vma->vm_flags & VM_SHARED) && FILTER(DAX_SHARED)) | ||
1243 | goto whole; | ||
1244 | if (!(vma->vm_flags & VM_SHARED) && FILTER(DAX_PRIVATE)) | ||
1245 | goto whole; | ||
1246 | return 0; | ||
1247 | } | ||
1248 | |||
1239 | /* Hugetlb memory check */ | 1249 | /* Hugetlb memory check */ |
1240 | if (vma->vm_flags & VM_HUGETLB) { | 1250 | if (vma->vm_flags & VM_HUGETLB) { |
1241 | if ((vma->vm_flags & VM_SHARED) && FILTER(HUGETLB_SHARED)) | 1251 | if ((vma->vm_flags & VM_SHARED) && FILTER(HUGETLB_SHARED)) |