[PATCH 13/14] ptp: vmclock: convert mmap hook to mmap_prepare

From: Lorenzo Stoakes (ARM)

Date: Thu Nov 05 2026 - 16:15:08 EST


Move from the deprecated mmap hook to the new mmap_prepare hook, using the
I/O PFN remap mmap action to map the clock page and retaining the -EAGAIN
error on failure via the action error override.

Signed-off-by: Lorenzo Stoakes (ARM) <ljs@xxxxxxxxxx>
---
drivers/ptp/ptp_vmclock.c | 19 +++++++++----------
1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/drivers/ptp/ptp_vmclock.c b/drivers/ptp/ptp_vmclock.c
index bb0e14bac9f2..e44433430044 100644
--- a/drivers/ptp/ptp_vmclock.c
+++ b/drivers/ptp/ptp_vmclock.c
@@ -364,27 +364,26 @@ struct vmclock_file_state {
atomic_t seq;
};

-static int vmclock_miscdev_mmap(struct file *fp, struct vm_area_struct *vma)
+static int vmclock_miscdev_mmap_prepare(struct vm_area_desc *desc)
{
- struct vmclock_file_state *fst = fp->private_data;
+ struct vmclock_file_state *fst = desc->file->private_data;
struct vmclock_state *st = fst->st;

- if ((vma->vm_flags & (VM_READ|VM_WRITE)) != VM_READ)
+ if (!vma_desc_test(desc, VMA_READ_BIT) ||
+ vma_desc_test(desc, VMA_WRITE_BIT))
return -EROFS;

/*
* Restrict the read-only mapping so it cannot be upgraded to
* writable later with mprotect().
*/
- vm_flags_clear(vma, VM_MAYWRITE);
+ vma_desc_clear_flags(desc, VMA_MAYWRITE_BIT);

- if (vma->vm_end - vma->vm_start != PAGE_SIZE || vma->vm_pgoff)
+ if (vma_desc_size(desc) != PAGE_SIZE || desc->pgoff)
return -EINVAL;

- if (io_remap_pfn_range(vma, vma->vm_start,
- st->res.start >> PAGE_SHIFT, PAGE_SIZE,
- vma->vm_page_prot))
- return -EAGAIN;
+ mmap_action_ioremap_full(desc, st->res.start >> PAGE_SHIFT);
+ desc->action.error_override = -EAGAIN;

return 0;
}
@@ -484,7 +483,7 @@ static const struct file_operations vmclock_miscdev_fops = {
.owner = THIS_MODULE,
.open = vmclock_miscdev_open,
.release = vmclock_miscdev_release,
- .mmap = vmclock_miscdev_mmap,
+ .mmap_prepare = vmclock_miscdev_mmap_prepare,
.read = vmclock_miscdev_read,
.poll = vmclock_miscdev_poll,
};

--
2.56.0