summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2004-09-29 01:59:10 +0000
committerpeter <peter@FreeBSD.org>2004-09-29 01:59:10 +0000
commit52704bafb2931e9ad24865a7a3b3ad3a7c5752ce (patch)
tree25ab656c52074f85b8cb82d2be955b419a85d04c /sys
parent883b7abe1aed9fea97ea5a5671c271466e84a896 (diff)
downloadFreeBSD-src-52704bafb2931e9ad24865a7a3b3ad3a7c5752ce.zip
FreeBSD-src-52704bafb2931e9ad24865a7a3b3ad3a7c5752ce.tar.gz
MFi386: rev 1.239 - invalidate tlb after pte update
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/amd64/mp_machdep.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c
index 07855ce..efe8eac 100644
--- a/sys/amd64/amd64/mp_machdep.c
+++ b/sys/amd64/amd64/mp_machdep.c
@@ -539,12 +539,14 @@ start_all_aps(void)
u_int32_t mpbioswarmvec;
int apic_id, cpu, i;
u_int64_t *pt4, *pt3, *pt2;
+ vm_offset_t va = boot_address + KERNBASE;
mtx_init(&ap_boot_mtx, "ap boot", NULL, MTX_SPIN);
/* install the AP 1st level boot code */
- pmap_kenter(boot_address + KERNBASE, boot_address);
- bcopy(mptramp_start, (void *)((uintptr_t)boot_address + KERNBASE), bootMP_size);
+ pmap_kenter(va, boot_address);
+ pmap_invalidate_page(kernel_pmap, va);
+ bcopy(mptramp_start, (void *)va, bootMP_size);
/* Locate the page tables, they'll be below the trampoline */
pt4 = (u_int64_t *)(uintptr_t)(mptramp_pagetables + KERNBASE);
OpenPOWER on IntegriCloud