]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
arm64/mm: Restructure arch_validate_flags() for extensibility
authorMark Brown <broonie@kernel.org>
Tue, 1 Oct 2024 22:58:42 +0000 (23:58 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 4 Oct 2024 11:04:33 +0000 (12:04 +0100)
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>
arch/arm64/include/asm/mman.h

index 9e39217b4afbbbd41610fda26c04158111a9f23b..03b790fd0ad803e12f647f90a03c461916596398 100644 (file)
@@ -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)