Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/amd64/pmap.c
Show First 20 Lines • Show All 7,590 Lines • ▼ Show 20 Lines | pmap_pti_add_kva_locked((vm_offset_t)common_tss, | ||||
(vm_offset_t)common_tss + sizeof(struct amd64tss) * MAXCPU, false); | (vm_offset_t)common_tss + sizeof(struct amd64tss) * MAXCPU, false); | ||||
CPU_FOREACH(i) { | CPU_FOREACH(i) { | ||||
/* Doublefault stack IST 1 */ | /* Doublefault stack IST 1 */ | ||||
va = common_tss[i].tss_ist1; | va = common_tss[i].tss_ist1; | ||||
pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); | pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); | ||||
/* NMI stack IST 2 */ | /* NMI stack IST 2 */ | ||||
va = common_tss[i].tss_ist2 + sizeof(struct nmi_pcpu); | va = common_tss[i].tss_ist2 + sizeof(struct nmi_pcpu); | ||||
pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); | pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); | ||||
/* MC# stack IST 3 */ | |||||
va = common_tss[i].tss_ist3 + sizeof(struct nmi_pcpu); | |||||
pmap_pti_add_kva_locked(va - PAGE_SIZE, va, false); | |||||
} | } | ||||
pmap_pti_add_kva_locked((vm_offset_t)kernphys + KERNBASE, | pmap_pti_add_kva_locked((vm_offset_t)kernphys + KERNBASE, | ||||
(vm_offset_t)etext, true); | (vm_offset_t)etext, true); | ||||
pti_finalized = true; | pti_finalized = true; | ||||
VM_OBJECT_WUNLOCK(pti_obj); | VM_OBJECT_WUNLOCK(pti_obj); | ||||
} | } | ||||
SYSINIT(pmap_pti, SI_SUB_CPU + 1, SI_ORDER_ANY, pmap_pti_init, NULL); | SYSINIT(pmap_pti, SI_SUB_CPU + 1, SI_ORDER_ANY, pmap_pti_init, NULL); | ||||
▲ Show 20 Lines • Show All 276 Lines • Show Last 20 Lines |