aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHaren Myneni <haren@linux.ibm.com>2025-06-10 07:42:27 +0530
committerMadhavan Srinivasan <maddy@linux.ibm.com>2025-06-10 07:56:41 +0530
commit0d67f0dee6c9176bc09a5482dd7346e3a0f14d0b (patch)
tree3db88eab0771fde1d4660416bb54a3486a360651
parentpowerpc/powernv/memtrace: Fix out of bounds issue in memtrace mmap (diff)
downloadlinux-rng-0d67f0dee6c9176bc09a5482dd7346e3a0f14d0b.tar.xz
linux-rng-0d67f0dee6c9176bc09a5482dd7346e3a0f14d0b.zip
powerpc/vas: Return -EINVAL if the offset is non-zero in mmap()
The user space calls mmap() to map VAS window paste address and the kernel returns the complete mapped page for each window. So return -EINVAL if non-zero is passed for offset parameter to mmap(). See Documentation/arch/powerpc/vas-api.rst for mmap() restrictions. Co-developed-by: Jonathan Greental <yonatan02greental@gmail.com> Signed-off-by: Jonathan Greental <yonatan02greental@gmail.com> Reported-by: Jonathan Greental <yonatan02greental@gmail.com> Fixes: dda44eb29c23 ("powerpc/vas: Add VAS user space API") Signed-off-by: Haren Myneni <haren@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20250610021227.361980-2-maddy@linux.ibm.com
-rw-r--r--arch/powerpc/platforms/book3s/vas-api.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/book3s/vas-api.c b/arch/powerpc/platforms/book3s/vas-api.c
index 0b6365d85d11..dc6f75d3ac6e 100644
--- a/arch/powerpc/platforms/book3s/vas-api.c
+++ b/arch/powerpc/platforms/book3s/vas-api.c
@@ -521,6 +521,15 @@ static int coproc_mmap(struct file *fp, struct vm_area_struct *vma)
return -EINVAL;
}
+ /*
+ * Map complete page to the paste address. So the user
+ * space should pass 0ULL to the offset parameter.
+ */
+ if (vma->vm_pgoff) {
+ pr_debug("Page offset unsupported to map paste address\n");
+ return -EINVAL;
+ }
+
/* Ensure instance has an open send window */
if (!txwin) {
pr_err("No send window open?\n");