Page MenuHomeFreeBSD

D21495.diff
No OneTemporary

D21495.diff

Index: head/sys/amd64/amd64/pmap.c
===================================================================
--- head/sys/amd64/amd64/pmap.c
+++ head/sys/amd64/amd64/pmap.c
@@ -3850,22 +3850,21 @@
end = va + pages * sizeof(struct vm_page);
while (va < end) {
pfn = first_page + (va - start) / sizeof(struct vm_page);
- domain = _vm_phys_domain(ctob(pfn));
+ domain = _vm_phys_domain(ptoa(pfn));
pdpe = pmap_pdpe(kernel_pmap, va);
if ((*pdpe & X86_PG_V) == 0) {
pa = vm_phys_early_alloc(domain, PAGE_SIZE);
dump_add_page(pa);
- bzero((void *)PHYS_TO_DMAP(pa), PAGE_SIZE);
+ pagezero((void *)PHYS_TO_DMAP(pa));
*pdpe = (pdp_entry_t)(pa | X86_PG_V | X86_PG_RW |
X86_PG_A | X86_PG_M);
- continue; /* try again */
}
pde = pmap_pdpe_to_pde(pdpe, va);
if ((*pde & X86_PG_V) != 0)
panic("Unexpected pde");
pa = vm_phys_early_alloc(domain, NBPDR);
for (i = 0; i < NPDEPG; i++)
- dump_add_page(pa + (i * PAGE_SIZE));
+ dump_add_page(pa + i * PAGE_SIZE);
newpdir = (pd_entry_t)(pa | X86_PG_V | X86_PG_RW | X86_PG_A |
X86_PG_M | PG_PS | pg_g | pg_nx);
pde_store(pde, newpdir);
Index: head/sys/amd64/include/vmparam.h
===================================================================
--- head/sys/amd64/include/vmparam.h
+++ head/sys/amd64/include/vmparam.h
@@ -176,8 +176,6 @@
#define DMAP_MIN_ADDRESS KVADDR(DMPML4I, 0, 0, 0)
#define DMAP_MAX_ADDRESS KVADDR(DMPML4I + NDMPML4E, 0, 0, 0)
-#define PA_MIN_ADDRESS KVADDR(PAPML4I, 0, 0, 0)
-
#define LARGEMAP_MIN_ADDRESS KVADDR(LMSPML4I, 0, 0, 0)
#define LARGEMAP_MAX_ADDRESS KVADDR(LMEPML4I + 1, 0, 0, 0)

File Metadata

Mime Type
text/plain
Expires
Sat, Feb 8, 2:58 PM (20 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16528019
Default Alt Text
D21495.diff (1 KB)

Event Timeline