On Fri, Mar 10, 2023 at 10:28:49AM -0800, Stefan Roesch wrote:
@@ -534,16 +534,58 @@ static int break_ksm(struct vm_area_struct *vma, unsigned long addr, return (ret & VM_FAULT_OOM) ? -ENOMEM : 0; } +static bool vma_ksm_compatible(struct vm_area_struct *vma) +{
- /*
* Be somewhat over-protective for now!
*/
- if (vma->vm_flags & (VM_MERGEABLE | VM_SHARED | VM_MAYSHARE |
VM_PFNMAP | VM_IO | VM_DONTEXPAND |
VM_HUGETLB | VM_MIXEDMAP))
return false; /* just ignore the advice */
- if (vma_is_dax(vma))
return false;
+#ifdef VM_SAO
- if (*vm_flags & VM_SAO)
return false;
+#endif +#ifdef VM_SPARC_ADI
- if (*vm_flags & VM_SPARC_ADI)
return false;
+#endif
These two also need to check vma->vm_flags, or it won't build on those configs.
Otherwise, the patch looks good to me.