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) <[email protected]>
---
 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


Reply via email to