mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-19 15:57:56 -05:00
arm64/mm: Restructure arch_validate_flags() for extensibility
Currently arch_validate_flags() is written in a very non-extensible fashion, returning immediately if MTE is not supported and writing the MTE check as a direct return. Since we will want to add more checks for GCS refactor the existing code to be more extensible, no functional change intended. Reviewed-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org> Reviewed-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20241001-arm64-gcs-v13-3-222b78d87eee@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:
committed by
Catalin Marinas
parent
9ab515b18f
commit
f645e888b1
@@ -62,11 +62,17 @@ static inline bool arch_validate_prot(unsigned long prot,
|
||||
|
||||
static inline bool arch_validate_flags(unsigned long vm_flags)
|
||||
{
|
||||
if (!system_supports_mte())
|
||||
return true;
|
||||
if (system_supports_mte()) {
|
||||
/*
|
||||
* only allow VM_MTE if VM_MTE_ALLOWED has been set
|
||||
* previously
|
||||
*/
|
||||
if ((vm_flags & VM_MTE) && !(vm_flags & VM_MTE_ALLOWED))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
/* only allow VM_MTE if VM_MTE_ALLOWED has been set previously */
|
||||
return !(vm_flags & VM_MTE) || (vm_flags & VM_MTE_ALLOWED);
|
||||
}
|
||||
#define arch_validate_flags(vm_flags) arch_validate_flags(vm_flags)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user