41 lines
1.5 KiB
Diff
41 lines
1.5 KiB
Diff
From: Ben Hutchings <ben@decadent.org.uk>
|
|
Date: Wed, 5 Jul 2017 13:32:43 +0100
|
|
Subject: 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 <ben@decadent.org.uk>
|
|
---
|
|
include/linux/mm.h | 1 +
|
|
include/linux/mman.h | 3 ++-
|
|
2 files changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
--- a/include/linux/mm.h
|
|
+++ b/include/linux/mm.h
|
|
@@ -201,6 +201,11 @@ extern unsigned int kobjsize(const void
|
|
#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 */
|
|
|
|
--- 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);
|