]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm/userfaultfd: Update zeropage to use uffd_info struct
authorLiam R. Howlett <Liam.Howlett@oracle.com>
Tue, 28 Oct 2025 19:22:06 +0000 (15:22 -0400)
committerLiam R. Howlett <Liam.Howlett@oracle.com>
Thu, 30 Oct 2025 16:50:11 +0000 (12:50 -0400)
It is cleaner to use the uffd_info struct.

Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
include/linux/userfaultfd_k.h
mm/shmem.c
mm/userfaultfd.c

index e3aafc30a1a7bbdaa286076d4f9d18f1fa88904b..8898671bde6e0d6e8168ccfcd91ae14f994a8bf1 100644 (file)
@@ -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,
index eb93f6a1ef00fb674584d5d018a28c3811d02ed3..0832b910c6cf0def91d28d974e64143fb3dccd2e 100644 (file)
@@ -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);
index 5f0d672c38eec0633b78bc346fe2696185849263..809e23716fdcc96c1b7320cb52f0aa2e3a7de63a 100644 (file)
@@ -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();