linux-uconsole/arch
Aneesh Kumar K.V 6cf5f631ba powerpc/hugetlb: Handle mmap_min_addr correctly in get_unmapped_area callback
[ Upstream commit 5330367fa3 ]

After we ALIGN up the address we need to make sure we didn't overflow
and resulted in zero address. In that case, we need to make sure that
the returned address is greater than mmap_min_addr.

This fixes selftest va_128TBswitch --run-hugetlb reporting failures when
run as non root user for

mmap(-1, MAP_HUGETLB)

The bug is that a non-root user requesting address -1 will be given address 0
which will then fail, whereas they should have been given something else that
would have succeeded.

We also avoid the first mmap(-1, MAP_HUGETLB) returning NULL address as mmap address
with this change. So we think this is not a security issue, because it only affects
whether we choose an address below mmap_min_addr, not whether we
actually allow that address to be mapped. ie. there are existing capability
checks to prevent a user mapping below mmap_min_addr and those will still be
honoured even without this fix.

Fixes: 484837601d ("powerpc/mm: Add radix support for hugetlb")
Reviewed-by: Laurent Dufour <ldufour@linux.vnet.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-04-05 22:33:02 +02:00
..
alpha alpha: Fix Eiger NR_IRQS to 128 2019-02-20 10:25:47 +01:00
arc ARCv2: don't assume core 0x54 has dual issue 2019-03-23 20:09:51 +01:00
arm ARM: 8840/1: use a raw_spinlock_t in unwind 2019-04-05 22:33:01 +02:00
arm64 arm64: debug: Don't propagate UNKNOWN FAR into si_code for debug signals 2019-04-05 22:32:55 +02:00
c6x kbuild: rename LDFLAGS to KBUILD_LDFLAGS 2018-08-24 08:22:08 +09:00
h8300 h8300: use cc-cross-prefix instead of hardcoding h8300-unknown-linux- 2019-04-05 22:32:55 +02:00
hexagon hexagon: modify ffs() and fls() to return int 2018-09-10 19:42:15 -05:00
ia64 ia64: Fix allnoconfig section mismatch for ioc_init/ioc_iommu_info 2018-08-22 14:12:47 -07:00
m68k m68k: Add -ffreestanding to CFLAGS 2019-03-23 20:10:00 +01:00
microblaze mm: make the __PAGETABLE_PxD_FOLDED defines non-empty 2018-12-29 13:37:57 +01:00
mips MIPS: Fix kernel crash for R6 in jump label branch function 2019-03-27 14:14:39 +09:00
nds32 nds32: Fix gcc 8.0 compiler option incompatible. 2019-02-12 19:46:57 +01:00
nios2 nios2: kconfig: remove duplicate DEBUG_STACK_USAGE symbol defintions 2018-08-27 09:47:20 +08:00
openrisc OpenRISC updates for 4.19 2018-08-23 14:09:37 -07:00
parisc parisc: Fix ptrace syscall number modification 2019-02-27 10:09:00 +01:00
powerpc powerpc/hugetlb: Handle mmap_min_addr correctly in get_unmapped_area callback 2019-04-05 22:33:02 +02:00
riscv riscv: Adjust mmap base address at a third of task size 2019-03-13 14:02:28 -07:00
s390 s390/setup: fix boot crash for machine without EDAT-1 2019-03-23 20:10:13 +01:00
sh arch/sh/boards/mach-kfr2r09/setup.c: fix struct mtd_oob_ops build warning 2019-02-12 19:47:18 +01:00
sparc sparc/function_graph: Simplify with function_graph_enter() 2018-12-05 19:32:10 +01:00
um um: Avoid marking pages with "changed protection" 2019-02-12 19:47:17 +01:00
unicore32 mm: convert return type of handle_mm_fault() caller to vm_fault_t 2018-08-17 16:20:28 -07:00
x86 x86/hyperv: Fix kernel panic when kexec on HyperV 2019-04-05 22:32:57 +02:00
xtensa xtensa: SMP: limit number of possible CPUs by NR_CPUS 2019-03-13 14:02:29 -07:00
.gitignore
Kconfig Merge branch 'tlb-fixes' 2018-08-23 14:55:01 -07:00