{
        if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_SEM | PROT_ADI))
                return 0;
-       if (prot & PROT_ADI) {
-               if (!adi_capable())
-                       return 0;
+       return 1;
+}
 
-               if (addr) {
-                       struct vm_area_struct *vma;
+#define arch_validate_flags(vm_flags) arch_validate_flags(vm_flags)
+/* arch_validate_flags() - Ensure combination of flags is valid for a
+ *     VMA.
+ */
+static inline bool arch_validate_flags(unsigned long vm_flags)
+{
+       /* If ADI is being enabled on this VMA, check for ADI
+        * capability on the platform and ensure VMA is suitable
+        * for ADI
+        */
+       if (vm_flags & VM_SPARC_ADI) {
+               if (!adi_capable())
+                       return false;
 
-                       vma = find_vma(current->mm, addr);
-                       if (vma) {
-                               /* ADI can not be enabled on PFN
-                                * mapped pages
-                                */
-                               if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
-                                       return 0;
+               /* ADI can not be enabled on PFN mapped pages */
+               if (vm_flags & (VM_PFNMAP | VM_MIXEDMAP))
+                       return false;
 
-                               /* Mergeable pages can become unmergeable
-                                * if ADI is enabled on them even if they
-                                * have identical data on them. This can be
-                                * because ADI enabled pages with identical
-                                * data may still not have identical ADI
-                                * tags on them. Disallow ADI on mergeable
-                                * pages.
-                                */
-                               if (vma->vm_flags & VM_MERGEABLE)
-                                       return 0;
-                       }
-               }
+               /* Mergeable pages can become unmergeable
+                * if ADI is enabled on them even if they
+                * have identical data on them. This can be
+                * because ADI enabled pages with identical
+                * data may still not have identical ADI
+                * tags on them. Disallow ADI on mergeable
+                * pages.
+                */
+               if (vm_flags & VM_MERGEABLE)
+                       return false;
        }
-       return 1;
+       return true;
 }
 #endif /* CONFIG_SPARC64 */