diff options
author | Kevin Brodsky <Kevin.Brodsky@arm.com> | 2019-11-25 20:27:06 +0300 |
---|---|---|
committer | Catalin Marinas <catalin.marinas@arm.com> | 2020-09-04 14:46:07 +0300 |
commit | b3fbbea4c00220f62e6f7e2514466e6ee81f7f60 (patch) | |
tree | ed5a4e5e67c60af7042aa9fef05325b83d5b9742 /include/linux/mman.h | |
parent | 4d1a8a2dc0f4cdc2d74491a60709e698f85daf55 (diff) | |
download | linux-b3fbbea4c00220f62e6f7e2514466e6ee81f7f60.tar.xz |
mm: Introduce arch_calc_vm_flag_bits()
Similarly to arch_calc_vm_prot_bits(), introduce a dummy
arch_calc_vm_flag_bits() invoked from calc_vm_flag_bits(). This macro
can be overridden by architectures to insert specific VM_* flags derived
from the mmap() MAP_* flags.
Signed-off-by: Kevin Brodsky <Kevin.Brodsky@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'include/linux/mman.h')
-rw-r--r-- | include/linux/mman.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/include/linux/mman.h b/include/linux/mman.h index 6f34c33075f9..6fa15c9b12af 100644 --- a/include/linux/mman.h +++ b/include/linux/mman.h @@ -78,13 +78,18 @@ static inline void vm_unacct_memory(long pages) } /* - * Allow architectures to handle additional protection bits + * Allow architectures to handle additional protection and flag bits. The + * overriding macros must be defined in the arch-specific asm/mman.h file. */ #ifndef arch_calc_vm_prot_bits #define arch_calc_vm_prot_bits(prot, pkey) 0 #endif +#ifndef arch_calc_vm_flag_bits +#define arch_calc_vm_flag_bits(flags) 0 +#endif + #ifndef arch_vm_get_page_prot #define arch_vm_get_page_prot(vm_flags) __pgprot(0) #endif @@ -135,7 +140,8 @@ 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 ) | + arch_calc_vm_flag_bits(flags); } unsigned long vm_commit_limit(void); |