]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: 7438/1: fill possible PMD empty section gaps
authorNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 27 Jun 2012 16:28:57 +0000 (17:28 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 1 Jul 2012 13:21:35 +0000 (14:21 +0100)
commitabce5c63ed8f859387ec0dbf6c1e4675ab6b15af
tree8a9746ff942ccc69c386773dd311ee465689453f
parenta456a8dfc6e5e5b7f393443767a07a6d2c5afb8a
ARM: 7438/1: fill possible PMD empty section gaps

On ARM with the 2-level page table format, a PMD entry is represented by
two consecutive section entries covering 2MB of virtual space.

However, static mappings always were allowed to use separate 1MB section
entries.  This means in practice that a static mapping may create half
populated PMDs via create_mapping().

Since commit c8aa1d0f9a (ARM: move iotable mappings within the vmalloc
region) those static mappings are located in the vmalloc area. We must
ensure no such half populated PMDs are accessible once vmalloc() or
ioremap() start looking at the vmalloc area for nearby free virtual
address ranges, or various things leading to a kernel crash will happen.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Reported-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Tested-by: "R, Sricharan" <r.sricharan@ti.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: stable@vger.kernel.org
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mm/mmu.c