On 23.10.23 14:29, David Hildenbrand wrote:
- /* Only allow remapping if both are mlocked or both aren't */
- if ((src_vma->vm_flags & VM_LOCKED) != (dst_vma->vm_flags & VM_LOCKED))
return -EINVAL;
- if (!(src_vma->vm_flags & VM_WRITE) || !(dst_vma->vm_flags & VM_WRITE))
return -EINVAL;
Why does one of both need VM_WRITE? If one really needs it, then the destination (where we're moving stuff to).
Just realized that we want both to be writable.
If you have this in place, there is no need to use maybe*_mkwrite(), you can use the non-maybe variants.
I recall that for UFFDIO_COPY we even support PROT_NONE VMAs, is there any reason why we want to have different semantics here?