relay: update relay to use mmap_prepare

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.

Link: https://lkml.kernel.org/r/7c9e82cdddf8b573ea3edb8cdb697363e3ccb5d7.1760959442.git.lorenzo.stoakes@oracle.com
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Pedro Falcato <pfalcato@suse.de>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andreas Larsson <andreas@gaisler.com>
Cc: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: Baoquan He <bhe@redhat.com>
Cc: Chatre, Reinette <reinette.chatre@intel.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: Christian Brauner <brauner@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Dave Martin <dave.martin@arm.com>
Cc: Dave Young <dyoung@redhat.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Dmitriy Vyukov <dvyukov@google.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Guo Ren <guoren@kernel.org>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: James Morse <james.morse@arm.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Jann Horn <jannh@google.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: Kevin Tian <kevin.tian@intel.com>
Cc: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mike Rapoport <rppt@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Robin Murohy <robin.murphy@arm.com>
Cc: Sumanth Korikkar <sumanthk@linux.ibm.com>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Sven Schnelle <svens@linux.ibm.com>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: "Uladzislau Rezki (Sony)" <urezki@gmail.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Vivek Goyal <vgoyal@redhat.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Lorenzo Stoakes 2025-10-20 13:11:22 +01:00 committed by Andrew Morton
parent 54c58a2f5f
commit 651fdda840
1 changed files with 17 additions and 16 deletions

View File

@ -72,17 +72,18 @@ static void relay_free_page_array(struct page **array)
} }
/** /**
* relay_mmap_buf: - mmap channel buffer to process address space * relay_mmap_prepare_buf: - mmap channel buffer to process address space
* @buf: relay channel buffer * @buf: the relay channel buffer
* @vma: vm_area_struct describing memory to be mapped * @desc: describing what to map
* *
* Returns 0 if ok, negative on error * Returns 0 if ok, negative on error
* *
* Caller should already have grabbed mmap_lock. * 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) if (!buf)
return -EBADF; return -EBADF;
@ -90,9 +91,9 @@ static int relay_mmap_buf(struct rchan_buf *buf, struct vm_area_struct *vma)
if (length != (unsigned long)buf->chan->alloc_size) if (length != (unsigned long)buf->chan->alloc_size)
return -EINVAL; return -EINVAL;
vma->vm_ops = &relay_file_mmap_ops; desc->vm_ops = &relay_file_mmap_ops;
vm_flags_set(vma, VM_DONTEXPAND); desc->vm_flags |= VM_DONTEXPAND;
vma->vm_private_data = buf; desc->private_data = buf;
return 0; return 0;
} }
@ -749,16 +750,16 @@ static int relay_file_open(struct inode *inode, struct file *filp)
} }
/** /**
* relay_file_mmap - mmap file op for relay files * relay_file_mmap_prepare - mmap file op for relay files
* @filp: the file * @desc: describing what to map
* @vma: the vma 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; struct rchan_buf *buf = desc->file->private_data;
return relay_mmap_buf(buf, vma);
return relay_mmap_prepare_buf(buf, desc);
} }
/** /**
@ -1006,7 +1007,7 @@ static ssize_t relay_file_read(struct file *filp,
const struct file_operations relay_file_operations = { const struct file_operations relay_file_operations = {
.open = relay_file_open, .open = relay_file_open,
.poll = relay_file_poll, .poll = relay_file_poll,
.mmap = relay_file_mmap, .mmap_prepare = relay_file_mmap_prepare,
.read = relay_file_read, .read = relay_file_read,
.release = relay_file_release, .release = relay_file_release,
}; };