2021-06-25 10:59:50

by Christophe Leroy

[permalink] [raw]
Subject: [PATCH] powerpc/syscalls: Simplify do_mmap2()

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 <[email protected]>
---
arch/powerpc/kernel/syscalls.c | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)

diff --git a/arch/powerpc/kernel/syscalls.c b/arch/powerpc/kernel/syscalls.c
index bf4ae0f0e36c..825931e400df 100644
--- a/arch/powerpc/kernel/syscalls.c
+++ b/arch/powerpc/kernel/syscalls.c
@@ -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,
--
2.25.0


2021-08-27 13:24:44

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] powerpc/syscalls: Simplify do_mmap2()

On Fri, 25 Jun 2021 10:58:33 +0000 (UTC), Christophe Leroy wrote:
> 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.
>
>
> [...]

Applied to powerpc/next.

[1/1] powerpc/syscalls: Simplify do_mmap2()
https://git.kernel.org/powerpc/c/316389e904f968d24d44cd96a6d171ee1ef269cf

cheers