kernel-ark/arch/arm/mm
Jonathan Austin 36418c516b ARM: 7499/1: mm: Fix vmalloc overlap check for !HIGHMEM
With !HIGHMEM, sanity_check_meminfo checks for banks that completely or
partially overlap the vmalloc region. The test for partial overlap checks
__va(bank->start + bank->size) > vmalloc_min. This is not appropriate if
there is a non-linear translation between virtual and physical addresses,
as bank->start + bank->size is actually in the bank following the one being
interrogated.

In most cases, even when using SPARSEMEM, this is not problematic as the
subsequent bank will start at a higher va than the one in question. However
if the physical to virtual address conversion is not monotonic increasing,
the incorrect test could result in a bank not being truncated when it
should be.

This patch ensures we perform the va-pa conversion on memory from the
bank we are interested in, not the following one.

Reported-by: ??? (Steve) <zhanzhenbo@gmail.com>
Signed-off-by: Jonathan Austin <jonathan.austin@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-08-25 09:20:40 +01:00
..
abort-ev4.S
abort-ev4t.S
abort-ev5t.S
abort-ev5tj.S
abort-ev6.S
abort-ev7.S
abort-lv4t.S
abort-macro.S
abort-nommu.S
alignment.c
cache-fa.S
cache-feroceon-l2.c
cache-l2x0.c
cache-tauros2.c
cache-v3.S
cache-v4.S
cache-v4wb.S
cache-v4wt.S
cache-v6.S
cache-v7.S
cache-xsc3l2.c
context.c ARM: 7502/1: contextidr: avoid using bfi instruction during notifier 2012-08-25 09:15:57 +01:00
copypage-fa.c
copypage-feroceon.c
copypage-v4mc.c
copypage-v4wb.c
copypage-v4wt.c
copypage-v6.c
copypage-xsc3.c
copypage-xscale.c
dma-mapping.c ARM: dma-mapping: fix incorrect freeing of atomic allocations 2012-08-09 07:46:07 +02:00
extable.c
fault-armv.c
fault.c
fault.h
flush.c ARM: 7487/1: mm: avoid setting nG bit for user mappings that aren't present 2012-08-11 09:15:59 +01:00
fsr-2level.c
fsr-3level.c
highmem.c
idmap.c
init.c Merge branches 'audit', 'delay', 'fixes', 'misc' and 'sta2x11' into for-linus 2012-07-27 23:06:32 +01:00
iomap.c
ioremap.c ARM: 7432/1: use the new linux/sizes.h 2012-06-28 17:14:35 +01:00
Kconfig
Makefile
mm.h ARM: Fix ioremap() of address zero 2012-08-25 09:11:40 +01:00
mmap.c
mmu.c ARM: 7499/1: mm: Fix vmalloc overlap check for !HIGHMEM 2012-08-25 09:20:40 +01:00
nommu.c
pabort-legacy.S
pabort-v6.S
pabort-v7.S
pgd.c
proc-arm7tdmi.S
proc-arm9tdmi.S
proc-arm720.S
proc-arm740.S
proc-arm920.S
proc-arm922.S
proc-arm925.S
proc-arm926.S
proc-arm940.S
proc-arm946.S
proc-arm1020.S
proc-arm1020e.S
proc-arm1022.S
proc-arm1026.S
proc-fa526.S
proc-feroceon.S
proc-macros.S
proc-mohawk.S
proc-sa110.S
proc-sa1100.S
proc-syms.c
proc-v6.S ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process 2012-07-09 17:41:10 +01:00
proc-v7-2level.S ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process 2012-07-09 17:41:10 +01:00
proc-v7-3level.S
proc-v7.S
proc-xsc3.S
proc-xscale.S
tlb-fa.S
tlb-v4.S
tlb-v4wb.S
tlb-v4wbi.S
tlb-v6.S
tlb-v7.S ARM: 7489/1: errata: fix workaround for erratum #720789 on UP systems 2012-08-11 09:16:00 +01:00
vmregion.c
vmregion.h