ARM: 7302/1: Add TLB flushing for both entries in a PMD
authorCatalin Marinas <catalin.marinas@arm.com>
Wed, 25 Jan 2012 10:54:22 +0000 (11:54 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 2 Feb 2012 17:37:42 +0000 (17:37 +0000)
commit6d3ec1ae6cdcda185bd9452b2daed5145e2493a5
treedabf4577ba47d2f7b70741c94353c94f1770b9f8
parent91756acb58b17aee68d055fc15b1e2550ff00801
ARM: 7302/1: Add TLB flushing for both entries in a PMD

Linux uses two PMD entries for a PTE with the classic page table format,
covering 2MB range. However, the __pte_free_tlb() function only adds a
single TLB flush corresponding to 1MB range covering 'addr'. On
Cortex-A15, level 1 entries can be cached by the TLB independently of
the level 2 entries and without additional flushing a PMD entry would be
left pointing at the wrong PTE. The patch limits the TLB flushing range
to two 4KB pages around the 1MB boundary within PMD.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/tlb.h