Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/amd64/mp_machdep.c
Show First 20 Lines • Show All 395 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
vm_page_t m; | vm_page_t m; | ||||
vm_offset_t oa, na; | vm_offset_t oa, na; | ||||
oa = (vm_offset_t)&__pcpu[cpuid]; | oa = (vm_offset_t)&__pcpu[cpuid]; | ||||
if (_vm_phys_domain(pmap_kextract(oa)) == domain) | if (_vm_phys_domain(pmap_kextract(oa)) == domain) | ||||
return; | return; | ||||
m = vm_page_alloc_domain(NULL, 0, domain, | m = vm_page_alloc_domain(NULL, 0, domain, | ||||
VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | VM_ALLOC_ZERO); | VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ); | ||||
na = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); | na = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)); | ||||
pagecopy((void *)oa, (void *)na); | pagecopy((void *)oa, (void *)na); | ||||
pmap_enter(kernel_pmap, oa, m, VM_PROT_READ | VM_PROT_WRITE, 0, 0); | pmap_enter(kernel_pmap, oa, m, VM_PROT_READ | VM_PROT_WRITE, 0, 0); | ||||
/* XXX old pcpu page leaked. */ | /* XXX old pcpu page leaked. */ | ||||
} | } | ||||
#endif | #endif | ||||
/* | /* | ||||
▲ Show 20 Lines • Show All 343 Lines • Show Last 20 Lines |