From 4169a9252243a59607d64d0252a116c034600c07 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Wed, 5 Jul 2017 13:32:43 +0100 Subject: [PATCH] mmap: Remember the MAP_FIXED flag as VM_FIXED Since 4.15 there are no spare bits, but we can use VM_ARCH_1 as VM_FIXED wil only be needed on x86. Signed-off-by: Ben Hutchings Gbp-Pq: Topic bugfix/x86 Gbp-Pq: Name mmap-remember-the-map_fixed-flag-as-vm_fixed.patch --- include/linux/mm.h | 5 +++++ include/linux/mman.h | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index cfbfc16f2bb..4ee67eebf86 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -201,6 +201,11 @@ extern unsigned int kobjsize(const void *objp); #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */ #define VM_SYNC 0x00800000 /* Synchronous page faults */ #define VM_ARCH_1 0x01000000 /* Architecture-specific flag */ +#ifdef CONFIG_X86 +#define VM_FIXED VM_ARCH_1 /* Allocated at fixed address */ +#else +#define VM_FIXED 0 +#endif #define VM_WIPEONFORK 0x02000000 /* Wipe VMA contents in child. */ #define VM_DONTDUMP 0x04000000 /* Do not include in the core dump */ diff --git a/include/linux/mman.h b/include/linux/mman.h index 6a4d1caaff5..393970e55bb 100644 --- a/include/linux/mman.h +++ b/include/linux/mman.h @@ -131,7 +131,9 @@ calc_vm_flag_bits(unsigned long flags) return _calc_vm_trans(flags, MAP_GROWSDOWN, VM_GROWSDOWN ) | _calc_vm_trans(flags, MAP_DENYWRITE, VM_DENYWRITE ) | _calc_vm_trans(flags, MAP_LOCKED, VM_LOCKED ) | - _calc_vm_trans(flags, MAP_SYNC, VM_SYNC ); + _calc_vm_trans(flags, MAP_SYNC, VM_SYNC ) | + (VM_FIXED ? + _calc_vm_trans(flags, MAP_FIXED, VM_FIXED ) : 0); } unsigned long vm_commit_limit(void); -- 2.30.2