Index: pmap.c =================================================================== RCS file: /home/ncvs/src/sys/i386/i386/pmap.c,v retrieving revision 1.448 diff -u -r1.448 pmap.c --- pmap.c 15 Oct 2003 00:45:35 -0000 1.448 +++ pmap.c 24 Oct 2003 20:55:27 -0000 @@ -2416,6 +2367,9 @@ curthread->td_pcb->pcb_switchout = pmap_zpi_switchout2; #endif *CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) | PG_A | PG_M; +#ifdef SMP + invlcaddr(CADDR2); +#endif pagezero(CADDR2); *CMAP2 = 0; invlcaddr(CADDR2); @@ -2442,6 +2396,9 @@ curthread->td_pcb->pcb_switchout = pmap_zpi_switchout2; #endif *CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) | PG_A | PG_M; +#ifdef SMP + invlcaddr(CADDR2); +#endif if (off == 0 && size == PAGE_SIZE) pagezero(CADDR2); else @@ -2470,6 +2427,9 @@ curthread->td_pcb->pcb_switchout = pmap_zpi_switchout3; #endif *CMAP3 = PG_V | PG_RW | VM_PAGE_TO_PHYS(m) | PG_A | PG_M; +#ifdef SMP + invlcaddr(CADDR3); +#endif pagezero(CADDR3); *CMAP3 = 0; invlcaddr(CADDR3); @@ -2498,6 +2458,10 @@ #endif *CMAP1 = PG_V | VM_PAGE_TO_PHYS(src) | PG_A; *CMAP2 = PG_V | PG_RW | VM_PAGE_TO_PHYS(dst) | PG_A | PG_M; +#ifdef SMP + invlcaddr(CADDR1); + invlcaddr(CADDR2); +#endif bcopy(CADDR1, CADDR2, PAGE_SIZE); *CMAP1 = 0; *CMAP2 = 0;