svn commit: r349323 - head/sys/arm64/arm64
Alan Cox
alc at FreeBSD.org
Sun Jun 23 21:06:57 UTC 2019
Author: alc
Date: Sun Jun 23 21:06:56 2019
New Revision: 349323
URL: https://svnweb.freebsd.org/changeset/base/349323
Log:
pmap_enter_quick_locked() never replaces a valid mapping, so it need not
perform a TLB invalidation. A barrier suffices. (See r343876.)
Add a comment to pmap_enter_quick_locked() in order to highlight the
fact that it does not replace valid mappings.
Correct a typo in one of pmap_enter()'s comments.
MFC after: 1 week
Modified:
head/sys/arm64/arm64/pmap.c
Modified: head/sys/arm64/arm64/pmap.c
==============================================================================
--- head/sys/arm64/arm64/pmap.c Sun Jun 23 19:37:12 2019 (r349322)
+++ head/sys/arm64/arm64/pmap.c Sun Jun 23 21:06:56 2019 (r349323)
@@ -3408,7 +3408,7 @@ validate:
__func__, pmap, va, new_l3);
}
} else {
- /* New mappig */
+ /* New mapping */
pmap_load_store(l3, new_l3);
dsb(ishst);
}
@@ -3706,6 +3706,9 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, v
l3 = pmap_l2_to_l3(pde, va);
}
+ /*
+ * Abort if a mapping already exists.
+ */
if (pmap_load(l3) != 0) {
if (mpte != NULL) {
mpte->wire_count--;
@@ -3755,7 +3758,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, v
cpu_icache_sync_range(PHYS_TO_DMAP(pa), PAGE_SIZE);
pmap_load_store(l3, l3_val);
- pmap_invalidate_page(pmap, va);
+ dsb(ishst);
return (mpte);
}
More information about the svn-src-all
mailing list