summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorKrishna Reddy <vdumpa@nvidia.com>2012-05-29 16:29:10 -0700
committerSimone Willett <swillett@nvidia.com>2012-06-07 12:51:03 -0700
commit25c3334f0e1ea6bde84c0514bad0eb1859566dba (patch)
treee29704c7e288f6a1cc3c6e7adf644f14d3447588 /arch
parente44a85c895b299225ba65d001a78c94ea8872a4b (diff)
mm: Ensure pte and pmd stores ordering.
Bug 974153 Signed-off-by: Krishna Reddy <vdumpa@nvidia.com> Change-Id: I294a93eca0b395c8c2639a7d6a2d29c54447ae37 Reviewed-on: http://git-master/r/105215 Tested-by: Krishna Reddy <vdumpa@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Jon Mayo <jmayo@nvidia.com> Reviewed-by: Bo Yan <byan@nvidia.com> Reviewed-by: Vinod Rex <vrex@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mm/pageattr.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mm/pageattr.c b/arch/arm/mm/pageattr.c
index 5f8071110e88..b7ff7f19b541 100644
--- a/arch/arm/mm/pageattr.c
+++ b/arch/arm/mm/pageattr.c
@@ -331,6 +331,10 @@ static void __set_pmd_pte(pmd_t *pmd, unsigned long address, pte_t *pte)
cpa_debug("__set_pmd_pte %x %x %x\n", pmd, pte, *pte);
+ /* enforce pte entry stores ordering to avoid pmd writes
+ * bypassing pte stores.
+ */
+ dsb();
/* change init_mm */
pmd_populate_kernel(&init_mm, pmd, pte);
@@ -342,7 +346,10 @@ static void __set_pmd_pte(pmd_t *pmd, unsigned long address, pte_t *pte)
pgd_index(address), address);
pmd_populate_kernel(NULL, pmd, pte);
}
-
+ /* enforce pmd entry stores ordering to avoid tlb flush bypassing
+ * pmd entry stores.
+ */
+ dsb();
}
static int