Page MenuHomeFreeBSD

D61391.1794418207.diff
No OneTemporary

Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None

D61391.1794418207.diff

diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c
--- a/sys/arm64/arm64/pmap.c
+++ b/sys/arm64/arm64/pmap.c
@@ -2303,14 +2303,14 @@
*/
static __inline void
pmap_s1_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva,
- bool final_only)
+ bool final_only, int ttl)
{
pmap_s1_invalidate_strided(pmap, sva, eva, L3_SIZE, final_only, TLBI_TTL_UNKNOWN);
}
static __inline void
pmap_s2_invalidate_range(pmap_t pmap, vm_offset_t sva, vm_offset_t eva,
- bool final_only)
+ bool final_only, int ttl)
{
PMAP_ASSERT_STAGE2(pmap);
MPASS(pmap_stage2_invalidate_range != NULL);
@@ -2322,9 +2322,11 @@
bool final_only)
{
if (pmap->pm_stage == PM_STAGE1)
- pmap_s1_invalidate_range(pmap, sva, eva, final_only);
+ pmap_s1_invalidate_range(pmap, sva, eva, final_only,
+ TLBI_TTL_L3);
else
- pmap_s2_invalidate_range(pmap, sva, eva, final_only);
+ pmap_s2_invalidate_range(pmap, sva, eva, final_only,
+ TLBI_TTL_L3);
}
void
@@ -2729,7 +2731,8 @@
size -= PAGE_SIZE;
}
if ((old_l3e & ATTR_DESCR_VALID) != 0)
- pmap_s1_invalidate_range(kernel_pmap, sva, va, true);
+ pmap_s1_invalidate_range(kernel_pmap, sva, va, true,
+ TLBI_TTL_L3);
else {
/*
* Because the old entries were invalid and the new mappings
@@ -2792,10 +2795,11 @@
if (va != sva) {
pmap_s1_invalidate_range(kernel_pmap, sva, va,
- true);
+ true, TLBI_TTL_L3);
}
pmap_clear(ptep);
- pmap_s1_invalidate_page(kernel_pmap, va, true, TLBI_TTL_L2);
+ pmap_s1_invalidate_page(kernel_pmap, va, true,
+ TLBI_TTL_L2);
PMAP_LOCK(kernel_pmap);
pmap_remove_kernel_l2(kernel_pmap, ptep, va);
PMAP_UNLOCK(kernel_pmap);
@@ -2830,7 +2834,8 @@
}
}
if (va != sva)
- pmap_s1_invalidate_range(kernel_pmap, sva, va, true);
+ pmap_s1_invalidate_range(kernel_pmap, sva, va, true,
+ TLBI_TTL_L3);
}
/*
@@ -2889,7 +2894,7 @@
}
if ((old_l3e & ATTR_DESCR_VALID) != 0)
pmap_s1_invalidate_range(kernel_pmap, (vm_offset_t)sva, va,
- true);
+ true, TLBI_TTL_L3);
else {
/*
* Because the old entries were invalid and the new mappings
@@ -2923,7 +2928,8 @@
va += PAGE_SIZE;
}
- pmap_s1_invalidate_range(kernel_pmap, (vm_offset_t)sva, va, true);
+ pmap_s1_invalidate_range(kernel_pmap, (vm_offset_t)sva, va, true,
+ TLBI_TTL_L3);
}
/***************************************************
@@ -4951,7 +4957,7 @@
if (va != va_next) {
if (invalidate)
pmap_s1_invalidate_range(pmap,
- va, sva, true);
+ va, sva, true, TLBI_TTL_L3);
va = va_next;
}
if ((l3 & ATTR_CONTIGUOUS) != 0) {
@@ -5015,7 +5021,8 @@
va = sva;
}
if (va != va_next && invalidate)
- pmap_s1_invalidate_range(pmap, va, sva, true);
+ pmap_s1_invalidate_range(pmap, va, sva, true,
+ TLBI_TTL_L3);
}
}
@@ -5154,7 +5161,7 @@
* We always inline pmap_update_entry() so that constant propagation
* and dead code elimination will specialize the following code.
*/
- pmap_s1_invalidate_range(pmap, va, va + size, final_only);
+ pmap_s1_invalidate_range(pmap, va, va + size, final_only, TLBI_TTL_L3);
/* Create the new mapping */
pmap_store(ptep, newpte);
@@ -8336,12 +8343,14 @@
continue;
maybe_invlrng:
if (va != va_next) {
- pmap_s1_invalidate_range(pmap, va, sva, true);
+ pmap_s1_invalidate_range(pmap, va, sva,
+ true, TLBI_TTL_L3);
va = va_next;
}
}
if (va != va_next)
- pmap_s1_invalidate_range(pmap, va, sva, true);
+ pmap_s1_invalidate_range(pmap, va, sva, true,
+ TLBI_TTL_L3);
}
PMAP_UNLOCK(pmap);
}

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 11, 5:30 PM (30 m, 23 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41660541
Default Alt Text
D61391.1794418207.diff (3 KB)

Event Timeline