mirror of https://github.com/torvalds/linux.git
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:
parent
54c58a2f5f
commit
651fdda840
|
|
@ -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,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue