Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8c31813f authored by Toshinobu Sugioka's avatar Toshinobu Sugioka Committed by Paul Mundt
Browse files

sh: Fix mmap2 for handling differing PAGE_SIZEs.



mmap2 uses a fixed page shift of 12, regardless of the PAGE_SIZE setting.
Fix up the mmap2 code to add some sanity checks on the mapping, and to
update pgoff accordingly.

Error handling bits based on 4280e312
("frv: fix mmap2 error handling").

Signed-off-by: default avatarToshinobu Sugioka <sugioka@itonet.co.jp>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent aefe6475
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -63,6 +63,15 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
	unsigned long prot, unsigned long flags,
	unsigned long fd, unsigned long pgoff)
{
	/*
	 * The shift for mmap2 is constant, regardless of PAGE_SIZE
	 * setting.
	 */
	if (pgoff & ((1 << (PAGE_SHIFT - 12)) - 1))
		return -EINVAL;

	pgoff >>= PAGE_SHIFT - 12;

	return do_mmap2(addr, len, prot, flags, fd, pgoff);
}