diff options
author | Peter Wemm <peter@FreeBSD.org> | 2004-09-29 01:59:10 +0000 |
---|---|---|
committer | Peter Wemm <peter@FreeBSD.org> | 2004-09-29 01:59:10 +0000 |
commit | ffee5dac09f09d19530f6862e13a184671307bed (patch) | |
tree | 25ab656c52074f85b8cb82d2be955b419a85d04c | |
parent | 083e5bdc725937543aee355f03a2a8552c025d14 (diff) | |
download | src-ffee5dac09f09d19530f6862e13a184671307bed.tar.gz src-ffee5dac09f09d19530f6862e13a184671307bed.zip |
MFi386: rev 1.239 - invalidate tlb after pte update
Notes
Notes:
svn path=/head/; revision=135914
-rw-r--r-- | sys/amd64/amd64/mp_machdep.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index 07855ce8be4a..efe8eace0038 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); |