[PATCH 1/2] mm/mprotect: Call arch_validate_prot under mmap_lock and with length
Christoph Hellwig
hch at infradead.org
Wed Oct 7 23:35:44 AEDT 2020
On Wed, Oct 07, 2020 at 09:39:31AM +0200, Jann Horn wrote:
> diff --git a/arch/powerpc/kernel/syscalls.c b/arch/powerpc/kernel/syscalls.c
> index 078608ec2e92..b1fabb97d138 100644
> --- a/arch/powerpc/kernel/syscalls.c
> +++ b/arch/powerpc/kernel/syscalls.c
> @@ -43,7 +43,7 @@ static inline long do_mmap2(unsigned long addr, size_t len,
> {
> long ret = -EINVAL;
>
> - if (!arch_validate_prot(prot, addr))
> + if (!arch_validate_prot(prot, addr, len))
This call isn't under mmap lock. I also find it rather weird as the
generic code only calls arch_validate_prot from mprotect, only powerpc
also calls it from mmap.
This seems to go back to commit ef3d3246a0d0
("powerpc/mm: Add Strong Access Ordering support")
More information about the Linuxppc-dev
mailing list