flags are only being used for write protection, just use a boolean.
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
struct folio **foliop, unsigned long increment);
int (*zeropage)(struct vm_area_struct *dst_vma, unsigned long dst_addr);
int (*cont)(struct vm_area_struct *dst_vma, unsigned long dst_addr,
- uffd_flags_t flags, unsigned long increment);
+ bool wp, unsigned long increment);
int (*poison)(struct vm_area_struct *dst_vma,
unsigned long dst_addr, unsigned long increment);
unsigned long dst_addr, unsigned long increment);
int mfill_atomic_pte_continue(struct vm_area_struct *dst_vma,
- unsigned long dst_addr, uffd_flags_t flags,
+ unsigned long dst_addr, bool wp,
unsigned long increment);
int mfill_atomic_pte_copy(struct vm_area_struct *dst_vma,
unsigned long dst_addr, unsigned long increment);
static int hugetlb_mfill_pte_continue(struct vm_area_struct *dst_vma,
- unsigned long dst_addr, uffd_flags_t flags,
+ unsigned long dst_addr, bool wp_enabled,
unsigned long increment);
static int hugetlb_mfill_atomic_pte_copy(struct vm_area_struct *dst_vma,
}
static int hugetlb_mfill_pte_continue(struct vm_area_struct *dst_vma,
- unsigned long dst_addr, uffd_flags_t flags,
+ unsigned long dst_addr, bool wp_enabled,
unsigned long increment)
{
struct mm_struct *dst_mm = dst_vma->vm_mm;
- bool wp_enabled = (flags & MFILL_ATOMIC_WP);
struct hstate *h = hstate_vma(dst_vma);
struct address_space *mapping = dst_vma->vm_file->f_mapping;
pgoff_t idx = vma_hugecache_offset(h, dst_vma, dst_addr);
u32 hash;
ret = hugetlb_mfill_prepare(dst_vma, dst_addr, increment,
- &dst_pte, &hash, flags & MFILL_ATOMIC_WP);
+ &dst_pte, &hash, wp_enabled);
if (ret)
return ret;
/* Handles UFFDIO_CONTINUE for all shmem VMAs (shared or private). */
int mfill_atomic_pte_continue(struct vm_area_struct *dst_vma,
- unsigned long dst_addr, uffd_flags_t flags,
+ unsigned long dst_addr, bool wp,
unsigned long increment)
{
struct inode *inode = file_inode(dst_vma->vm_file);
}
ret = mfill_atomic_install_pte(dst_pmd, dst_vma, dst_addr,
- page, false, flags & MFILL_ATOMIC_WP);
+ page, false, wp);
if (ret)
goto out_release;
if (uffd_flags_mode_is(flags, MFILL_ATOMIC_POISON)) {
err = uffd_ops->poison(dst_vma, dst_addr, increment);
} else if (uffd_flags_mode_is(flags, MFILL_ATOMIC_CONTINUE)) {
- err = uffd_ops->cont(dst_vma, dst_addr, flags,
+ err = uffd_ops->cont(dst_vma, dst_addr,
+ flags & MFILL_ATOMIC_WP,
increment);
} else if (uffd_flags_mode_is(flags, MFILL_ATOMIC_COPY)) {
err = uffd_ops->copy(dst_vma, dst_addr, src_addr,