Page MenuHomeFreeBSD

D38377.id116436.diff
No OneTemporary

D38377.id116436.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
@@ -1347,7 +1347,7 @@
struct vm_phys_seg *seg, *next_seg;
struct pmap_large_md_page *pvd;
vm_size_t s;
- long start, end, highest, pv_npg;
+ long start, highest;
int domain, i, j, pages;
/*
@@ -1360,14 +1360,13 @@
/*
* Calculate the size of the array.
*/
- pv_npg = 0;
+ s = 0;
for (i = 0; i < vm_phys_nsegs; i++) {
seg = &vm_phys_segs[i];
- pv_npg += pmap_l2_pindex(roundup2(seg->end, L2_SIZE)) -
+ pages = pmap_l2_pindex(roundup2(seg->end, L2_SIZE)) -
pmap_l2_pindex(seg->start);
+ s += round_page(pages * sizeof(*pvd));
}
- s = (vm_size_t)pv_npg * sizeof(struct pmap_large_md_page);
- s = round_page(s);
pv_table = (struct pmap_large_md_page *)kva_alloc(s);
if (pv_table == NULL)
panic("%s: kva_alloc failed\n", __func__);
@@ -1380,17 +1379,13 @@
s = 0;
for (i = 0; i < vm_phys_nsegs; i++) {
seg = &vm_phys_segs[i];
- start = highest + 1;
- end = start + pmap_l2_pindex(roundup2(seg->end, L2_SIZE)) -
+ pages = pmap_l2_pindex(roundup2(seg->end, L2_SIZE)) -
pmap_l2_pindex(seg->start);
domain = seg->domain;
- if (highest >= end)
- continue;
-
+ start = highest + 1;
pvd = &pv_table[start];
- pages = end - start + 1;
s = round_page(pages * sizeof(*pvd));
highest = start + (s / sizeof(*pvd)) - 1;

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 30, 2:24 AM (7 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30568392
Default Alt Text
D38377.id116436.diff (1 KB)

Event Timeline