summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2014-02-16 22:12:13 +0000
committermarcel <marcel@FreeBSD.org>2014-02-16 22:12:13 +0000
commit2aad389c5a78fcbe02bee5cc0544786b677c94bd (patch)
tree0e7b63b42d5ea2dba2af6372627944cf1035b706 /sys/ia64
parent4262006891e6ee2136f01870ae5c095d2eb28eb2 (diff)
downloadFreeBSD-src-2aad389c5a78fcbe02bee5cc0544786b677c94bd.zip
FreeBSD-src-2aad389c5a78fcbe02bee5cc0544786b677c94bd.tar.gz
MFC r260914:
In pmap_set_pte(), make sure to enforce ordering by inserting a memory fence.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/pmap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c
index 49418cd..7b5eea0 100644
--- a/sys/ia64/ia64/pmap.c
+++ b/sys/ia64/ia64/pmap.c
@@ -1318,6 +1318,8 @@ pmap_set_pte(struct ia64_lpte *pte, vm_offset_t va, vm_offset_t pa,
pte->itir = PAGE_SHIFT << 2;
+ ia64_mf();
+
pte->tag = ia64_ttag(va);
}
@@ -1336,8 +1338,8 @@ pmap_remove_pte(pmap_t pmap, struct ia64_lpte *pte, vm_offset_t va,
* First remove from the VHPT.
*/
error = pmap_remove_vhpt(va);
- if (error)
- return (error);
+ KASSERT(error == 0, ("%s: pmap_remove_vhpt returned %d",
+ __func__, error));
pmap_invalidate_page(va);
OpenPOWER on IntegriCloud