It is relatively trivial to update this code to use the f_op->mmap_prepare
hook in favour of the deprecated f_op->mmap hook, so do so.

Signed-off-by: Lorenzo Stoakes <lorenzo.stoa...@oracle.com>
---
 kernel/relay.c | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/kernel/relay.c b/kernel/relay.c
index 8d915fe98198..8866054104fe 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -72,17 +72,17 @@ static void relay_free_page_array(struct page **array)
 }
 
 /**
- *     relay_mmap_buf: - mmap channel buffer to process address space
- *     @buf: relay channel buffer
- *     @vma: vm_area_struct describing memory to be mapped
+ *     relay_mmap_prepare_buf: - mmap channel buffer to process address space
+ *     @desc: describing what to map
  *
  *     Returns 0 if ok, negative on error
  *
  *     Caller should already have grabbed mmap_lock.
  */
-static int relay_mmap_buf(struct rchan_buf *buf, struct vm_area_struct *vma)
+static int relay_mmap_prepare_buf(struct rchan_buf *buf,
+                                 struct vm_area_desc *desc)
 {
-       unsigned long length = vma->vm_end - vma->vm_start;
+       unsigned long length = vma_desc_size(desc);
 
        if (!buf)
                return -EBADF;
@@ -90,9 +90,9 @@ static int relay_mmap_buf(struct rchan_buf *buf, struct 
vm_area_struct *vma)
        if (length != (unsigned long)buf->chan->alloc_size)
                return -EINVAL;
 
-       vma->vm_ops = &relay_file_mmap_ops;
-       vm_flags_set(vma, VM_DONTEXPAND);
-       vma->vm_private_data = buf;
+       desc->vm_ops = &relay_file_mmap_ops;
+       desc->vm_flags |= VM_DONTEXPAND;
+       desc->private_data = buf;
 
        return 0;
 }
@@ -749,16 +749,16 @@ static int relay_file_open(struct inode *inode, struct 
file *filp)
 }
 
 /**
- *     relay_file_mmap - mmap file op for relay files
- *     @filp: the file
- *     @vma: the vma describing what to map
+ *     relay_file_mmap_prepare - mmap file op for relay files
+ *     @desc: describing what to map
  *
- *     Calls upon relay_mmap_buf() to map the file into user space.
+ *     Calls upon relay_mmap_prepare_buf() to map the file into user space.
  */
-static int relay_file_mmap(struct file *filp, struct vm_area_struct *vma)
+static int relay_file_mmap_prepare(struct vm_area_desc *desc)
 {
-       struct rchan_buf *buf = filp->private_data;
-       return relay_mmap_buf(buf, vma);
+       struct rchan_buf *buf = desc->file->private_data;
+
+       return relay_mmap_prepare_buf(buf, desc);
 }
 
 /**
@@ -1006,7 +1006,7 @@ static ssize_t relay_file_read(struct file *filp,
 const struct file_operations relay_file_operations = {
        .open           = relay_file_open,
        .poll           = relay_file_poll,
-       .mmap           = relay_file_mmap,
+       .mmap_prepare   = relay_file_mmap_prepare,
        .read           = relay_file_read,
        .release        = relay_file_release,
 };
-- 
2.51.0


Reply via email to