[PATCH 05/14] x86/sgx: convert vepc mmap hook to mmap_prepare

From: Lorenzo Stoakes (ARM)

Date: Thu Nov 05 2026 - 16:10:23 EST


Move from the deprecated mmap hook to the new mmap_prepare hook. The hook
only checks that the mapping is shared and sets VMA flags, operations and
private data.

Signed-off-by: Lorenzo Stoakes (ARM) <ljs@xxxxxxxxxx>
---
arch/x86/kernel/cpu/sgx/virt.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kernel/cpu/sgx/virt.c b/arch/x86/kernel/cpu/sgx/virt.c
index 6a1933ddc6fc..850990519ca5 100644
--- a/arch/x86/kernel/cpu/sgx/virt.c
+++ b/arch/x86/kernel/cpu/sgx/virt.c
@@ -98,17 +98,18 @@ static const struct vm_operations_struct sgx_vepc_vm_ops = {
.fault = sgx_vepc_fault,
};

-static int sgx_vepc_mmap(struct file *file, struct vm_area_struct *vma)
+static int sgx_vepc_mmap_prepare(struct vm_area_desc *desc)
{
- struct sgx_vepc *vepc = file->private_data;
+ struct sgx_vepc *vepc = desc->file->private_data;

- if (!(vma->vm_flags & VM_SHARED))
+ if (!vma_desc_test(desc, VMA_SHARED_BIT))
return -EINVAL;

- vma->vm_ops = &sgx_vepc_vm_ops;
+ desc->vm_ops = &sgx_vepc_vm_ops;
/* Don't copy VMA in fork() */
- vm_flags_set(vma, VM_PFNMAP | VM_IO | VM_DONTDUMP | VM_DONTCOPY);
- vma->vm_private_data = vepc;
+ vma_desc_set_flags(desc, VMA_PFNMAP_BIT, VMA_IO_BIT, VMA_DONTDUMP_BIT,
+ VMA_DONTCOPY_BIT);
+ desc->private_data = vepc;

return 0;
}
@@ -315,7 +316,7 @@ static const struct file_operations sgx_vepc_fops = {
.unlocked_ioctl = sgx_vepc_ioctl,
.compat_ioctl = sgx_vepc_ioctl,
.release = sgx_vepc_release,
- .mmap = sgx_vepc_mmap,
+ .mmap_prepare = sgx_vepc_mmap_prepare,
};

static struct miscdevice sgx_vepc_dev = {

--
2.56.0