]> 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)
commitdadfd06a1ca5c52d59135c09223f8b444bca43c3
tree8a9746ff942ccc69c386773dd311ee465689453f
parent946015af511fab7f2f5c296128129a637de6cf7a
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 46aab85153 (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