Re: [PATCH v5 11/25] mm: Introduce arch_calc_vm_flag_bits()
From: Andrew Morton <akpm@linux-foundation.org>
Date: 2020-06-24 18:36:15
Also in:
linux-arch, linux-mm
On Wed, 24 Jun 2020 18:52:30 +0100 Catalin Marinas [off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Kevin Brodsky <redacted> 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. ...--- a/include/linux/mman.h +++ b/include/linux/mman.h@@ -74,13 +74,17 @@ static inline void vm_unacct_memory(long pages) } /* - * Allow architectures to handle additional protection bits + * Allow architectures to handle additional protection and flag bits */ #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
It would be helpful to add a comment specifying which arch header file is responsible for defining arch_calc_vm_flag_bits. Because in the past we've messed this sort of thing up and had different architectures define things in different header files, resulting in build issues as code evolves.
quoted hunk ↗ jump to hunk
#ifndef arch_vm_get_page_prot #define arch_vm_get_page_prot(vm_flags) __pgprot(0) #endif@@ -131,7 +135,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);
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel