Make use of the ability to specify a remap action within mmap_prepare to
update the resctl pseudo-lock to use mmap_prepare in favour of the
deprecated mmap hook.

Signed-off-by: Lorenzo Stoakes <[email protected]>
---
 fs/resctrl/pseudo_lock.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/fs/resctrl/pseudo_lock.c b/fs/resctrl/pseudo_lock.c
index 87bbc2605de1..e847df586766 100644
--- a/fs/resctrl/pseudo_lock.c
+++ b/fs/resctrl/pseudo_lock.c
@@ -995,10 +995,11 @@ static const struct vm_operations_struct pseudo_mmap_ops 
= {
        .mremap = pseudo_lock_dev_mremap,
 };
 
-static int pseudo_lock_dev_mmap(struct file *filp, struct vm_area_struct *vma)
+static int pseudo_lock_dev_mmap_prepare(struct vm_area_desc *desc)
 {
-       unsigned long vsize = vma->vm_end - vma->vm_start;
-       unsigned long off = vma->vm_pgoff << PAGE_SHIFT;
+       unsigned long off = desc->pgoff << PAGE_SHIFT;
+       unsigned long vsize = vma_desc_size(desc);
+       struct file *filp = desc->file;
        struct pseudo_lock_region *plr;
        struct rdtgroup *rdtgrp;
        unsigned long physical;
@@ -1043,7 +1044,7 @@ static int pseudo_lock_dev_mmap(struct file *filp, struct 
vm_area_struct *vma)
         * Ensure changes are carried directly to the memory being mapped,
         * do not allow copy-on-write mapping.
         */
-       if (!(vma->vm_flags & VM_SHARED)) {
+       if (!(desc->vm_flags & VM_SHARED)) {
                mutex_unlock(&rdtgroup_mutex);
                return -EINVAL;
        }
@@ -1055,12 +1056,11 @@ static int pseudo_lock_dev_mmap(struct file *filp, 
struct vm_area_struct *vma)
 
        memset(plr->kmem + off, 0, vsize);
 
-       if (remap_pfn_range(vma, vma->vm_start, physical + vma->vm_pgoff,
-                           vsize, vma->vm_page_prot)) {
-               mutex_unlock(&rdtgroup_mutex);
-               return -EAGAIN;
-       }
-       vma->vm_ops = &pseudo_mmap_ops;
+       desc->vm_ops = &pseudo_mmap_ops;
+
+       mmap_action_remap(&desc->action, desc->start, physical + desc->pgoff,
+                         vsize, desc->page_prot);
+
        mutex_unlock(&rdtgroup_mutex);
        return 0;
 }
@@ -1071,7 +1071,7 @@ static const struct file_operations pseudo_lock_dev_fops 
= {
        .write =        NULL,
        .open =         pseudo_lock_dev_open,
        .release =      pseudo_lock_dev_release,
-       .mmap =         pseudo_lock_dev_mmap,
+       .mmap_prepare = pseudo_lock_dev_mmap_prepare,
 };
 
 int rdt_pseudo_lock_init(void)
-- 
2.51.0


Reply via email to