mirror of https://github.com/torvalds/linux.git
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> |
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| 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 | ||
| 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 | ||
| extable.c | ||
| fault-armv.c | ||
| fault.c | ||
| fault.h | ||
| flush.c | ||
| fsr-2level.c | ||
| fsr-3level.c | ||
| highmem.c | ||
| idmap.c | ||
| init.c | ||
| iomap.c | ||
| ioremap.c | ||
| mm.h | ||
| mmap.c | ||
| mmu.c | ||
| 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 | ||
| proc-v7-2level.S | ||
| 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 | ||
| vmregion.c | ||
| vmregion.h | ||