summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm/tlb.h
diff options
context:
space:
mode:
authorMark Brown <broonie@opensource.wolfsonmicro.com>2012-02-09 12:00:22 +0000
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-02-09 12:00:22 +0000
commita08a499aa3d85b605b5669cfc82b8e14232f7e91 (patch)
treefd82da95552c996e9522a068ec77eae3a5ac6eec /arch/arm/include/asm/tlb.h
parent6d70934a0248d0d92e01116807c02c00ae172299 (diff)
parentd65b4e98d7ea3038b767b70fe8be959b2913f16d (diff)
Merge tag 'v3.3-rc3' as we've got several bugfixes in there which are
colliding annoyingly with development. Linux 3.3-rc3 .. the number of the half-beast? Conflicts: sound/soc/codecs/wm5100.c sound/soc/codecs/wm8994.c
Diffstat (limited to 'arch/arm/include/asm/tlb.h')
-rw-r--r--arch/arm/include/asm/tlb.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm/include/asm/tlb.h b/arch/arm/include/asm/tlb.h
index 5d3ed7e38561..314d4664eae7 100644
--- a/arch/arm/include/asm/tlb.h
+++ b/arch/arm/include/asm/tlb.h
@@ -198,7 +198,15 @@ static inline void __pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
unsigned long addr)
{
pgtable_page_dtor(pte);
- tlb_add_flush(tlb, addr);
+
+ /*
+ * With the classic ARM MMU, a pte page has two corresponding pmd
+ * entries, each covering 1MB.
+ */
+ addr &= PMD_MASK;
+ tlb_add_flush(tlb, addr + SZ_1M - PAGE_SIZE);
+ tlb_add_flush(tlb, addr + SZ_1M);
+
tlb_remove_page(tlb, pte);
}