From e92d13436c6bbdaa8c43a0ef7cc63270396c0b8c Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Tue, 28 Oct 2025 15:22:06 -0400 Subject: [PATCH] mm/userfaultfd: Update zeropage to use uffd_info struct It is cleaner to use the uffd_info struct. Signed-off-by: Liam R. Howlett --- include/linux/userfaultfd_k.h | 5 ++--- mm/shmem.c | 5 +++-- mm/userfaultfd.c | 7 ++++--- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/include/linux/userfaultfd_k.h b/include/linux/userfaultfd_k.h index e3aafc30a1a7..8898671bde6e 100644 --- a/include/linux/userfaultfd_k.h +++ b/include/linux/userfaultfd_k.h @@ -119,7 +119,7 @@ ssize_t uffd_failed_do_unlock(struct userfaultfd_ctx *ctx, struct vm_uffd_ops { int (*copy)(struct uffd_info *info); - int (*zeropage)(struct vm_area_struct *dst_vma, unsigned long dst_addr); + int (*zeropage)(struct uffd_info *info); int (*cont)(struct vm_area_struct *dst_vma, unsigned long dst_addr, bool wp, unsigned long increment); int (*poison)(struct vm_area_struct *dst_vma, @@ -263,8 +263,7 @@ int mfill_atomic_pte_continue(struct vm_area_struct *dst_vma, unsigned long increment); int mfill_atomic_pte_copy(struct uffd_info *info); -int mfill_atomic_pte_zeropage(struct vm_area_struct *dst_vma, - unsigned long dst_addr); +int mfill_atomic_pte_zeropage(struct uffd_info *info); static inline bool vma_can_userfault(struct vm_area_struct *vma, vm_flags_t vm_flags, diff --git a/mm/shmem.c b/mm/shmem.c index eb93f6a1ef00..0832b910c6cf 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -3202,9 +3202,10 @@ out_release: return ret; } -static int shmem_mfill_atomic_pte_zeropage(struct vm_area_struct *dst_vma, - unsigned long dst_addr) +static int shmem_mfill_atomic_pte_zeropage(struct uffd_info *u_info) { + struct vm_area_struct *dst_vma = u_info->dst_vma; + unsigned long dst_addr = u_info->dst_addr; struct inode *inode = file_inode(dst_vma->vm_file); struct shmem_inode_info *info = SHMEM_I(inode); gfp_t gfp = mapping_gfp_mask(inode->i_mapping); diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c index 5f0d672c38ee..809e23716fdc 100644 --- a/mm/userfaultfd.c +++ b/mm/userfaultfd.c @@ -355,12 +355,13 @@ out_put: return ret; } -int mfill_atomic_pte_zeropage(struct vm_area_struct *dst_vma, - unsigned long dst_addr) +int mfill_atomic_pte_zeropage(struct uffd_info *info) { pte_t _dst_pte, *dst_pte; pmd_t *dst_pmd; spinlock_t *ptl; + struct vm_area_struct *dst_vma = info->dst_vma; + unsigned long dst_addr = info->dst_addr; int ret; ret = uffd_get_dst_pmd(dst_vma, dst_addr, &dst_pmd); @@ -711,7 +712,7 @@ retry: * the radix tree. */ } else { - err = info.uffd_ops->zeropage(dst_vma, info.dst_addr); + err = info.uffd_ops->zeropage(&info); } cond_resched(); -- 2.51.0