Skip to content

Commit

Permalink
sh: Fix mmap2 for handling differing PAGE_SIZEs.
Browse files Browse the repository at this point in the history
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 4280e31
("frv: fix mmap2 error handling").

Signed-off-by: Toshinobu Sugioka <sugioka@itonet.co.jp>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Toshinobu Sugioka authored and Paul Mundt committed Apr 20, 2009
1 parent aefe647 commit 8c31813
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions arch/sh/kernel/sys_sh.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit 8c31813

Please sign in to comment.