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

Commit 99399545 authored by Michal Simek's avatar Michal Simek
Browse files

microblaze: Fix bug with mmap2 syscall MB implementation



Fix mmap2 behaviour which incorrectly works with pgoff
not in 4k units.

Reported-by: default avatarRich Felker <dalias@aerifal.cx>
Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
parent 176195e7
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -42,3 +42,14 @@ SYSCALL_DEFINE6(mmap, unsigned long, addr, unsigned long, len,

	return sys_mmap_pgoff(addr, len, prot, flags, fd, pgoff >> PAGE_SHIFT);
}

SYSCALL_DEFINE6(mmap2, unsigned long, addr, unsigned long, len,
		unsigned long, prot, unsigned long, flags, unsigned long, fd,
		unsigned long, pgoff)
{
	if (pgoff & (~PAGE_MASK >> 12))
		return -EINVAL;

	return sys_mmap_pgoff(addr, len, prot, flags, fd,
			      pgoff >> (PAGE_SHIFT - 12));
}
+1 −1
Original line number Diff line number Diff line
@@ -192,7 +192,7 @@ ENTRY(sys_call_table)
	.long sys_ni_syscall		/* reserved for streams2 */
	.long sys_vfork		/* 190 */
	.long sys_getrlimit
	.long sys_mmap_pgoff		/* mmap2 */
	.long sys_mmap2
	.long sys_truncate64
	.long sys_ftruncate64
	.long sys_stat64		/* 195 */