powerpc/syscalls: Simplify do_mmap2()
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Fri, 25 Jun 2021 10:58:33 +0000 (10:58 +0000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 25 Aug 2021 03:35:48 +0000 (13:35 +1000)
When shift is nul, operations remain valid so no test needed.

And 'ret' is unnecessary.

And use IS_ALIGNED() to check alignment, that's more clear.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/373ec500f386374bc5735007df3d3869eac47be1.1624618701.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/syscalls.c

index bf4ae0f..825931e 100644 (file)
@@ -41,20 +41,13 @@ static inline long do_mmap2(unsigned long addr, size_t len,
                        unsigned long prot, unsigned long flags,
                        unsigned long fd, unsigned long off, int shift)
 {
-       long ret = -EINVAL;
-
        if (!arch_validate_prot(prot, addr))
-               goto out;
+               return -EINVAL;
 
-       if (shift) {
-               if (off & ((1 << shift) - 1))
-                       goto out;
-               off >>= shift;
-       }
+       if (!IS_ALIGNED(off, 1 << shift))
+               return -EINVAL;
 
-       ret = ksys_mmap_pgoff(addr, len, prot, flags, fd, off);
-out:
-       return ret;
+       return ksys_mmap_pgoff(addr, len, prot, flags, fd, off >> shift);
 }
 
 SYSCALL_DEFINE6(mmap2, unsigned long, addr, size_t, len,