diff options
Diffstat (limited to 'sys/amd64')
-rw-r--r-- | sys/amd64/amd64/pmap.c | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 4cfeb9c..9434ce5 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2988,7 +2988,6 @@ pmap_mincore(pmap, addr) void pmap_activate(struct thread *td) { - struct proc *p = td->td_proc; pmap_t pmap, oldpmap; u_int64_t cr3; @@ -3005,18 +3004,7 @@ if (oldpmap) /* XXX FIXME */ pmap->pm_active |= PCPU_GET(cpumask); #endif cr3 = vtophys(pmap->pm_pml4); - /* XXXKSE this is wrong. - * pmap_activate is for the current thread on the current cpu - */ - if (p->p_flag & P_SA) { - /* Make sure all other cr3 entries are updated. */ - /* what if they are running? XXXKSE (maybe abort them) */ - FOREACH_THREAD_IN_PROC(p, td) { - td->td_pcb->pcb_cr3 = cr3; - } - } else { - td->td_pcb->pcb_cr3 = cr3; - } + td->td_pcb->pcb_cr3 = cr3; load_cr3(cr3); critical_exit(); } |