diff options
| author | Peter Wemm <peter@FreeBSD.org> | 2002-07-13 21:03:08 +0000 |
|---|---|---|
| committer | Peter Wemm <peter@FreeBSD.org> | 2002-07-13 21:03:08 +0000 |
| commit | 96fd5002b4900658e25a955bb80dc84d36f0b7f5 (patch) | |
| tree | b75079c303af489318e02d275706e34ba4e5a10a /sys | |
| parent | 006490441ddaf7a2f172e0fc0f67f567621e70ae (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/amd64/amd64/pmap.c | 13 | ||||
| -rw-r--r-- | sys/i386/i386/pmap.c | 13 |
2 files changed, 24 insertions, 2 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 2d00a12270f9..2c76ef0d4a3c 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2724,10 +2724,14 @@ pmap_zero_page(vm_page_t m) if (*CMAP2) panic("pmap_zero_page: CMAP2 busy"); *CMAP2 = PG_V | PG_RW | phys | PG_A | PG_M; +#ifdef I386_CPU + invltlb(); +#else #ifdef SMP curthread->td_switchin = pmap_zpi_switchin2; #endif invlpg((u_int)CADDR2); +#endif #if defined(I686_CPU) if (cpu_class == CPUCLASS_686) i686_pagezero(CADDR2); @@ -2755,10 +2759,14 @@ pmap_zero_page_area(vm_page_t m, int off, int size) if (*CMAP2) panic("pmap_zero_page: CMAP2 busy"); *CMAP2 = PG_V | PG_RW | phys | PG_A | PG_M; +#ifdef I386_CPU + invltlb(); +#else #ifdef SMP curthread->td_switchin = pmap_zpi_switchin2; #endif invlpg((u_int)CADDR2); +#endif #if defined(I686_CPU) if (cpu_class == CPUCLASS_686 && off == 0 && size == PAGE_SIZE) i686_pagezero(CADDR2); @@ -2786,10 +2794,14 @@ pmap_zero_page_idle(vm_page_t m) if (*CMAP3) panic("pmap_zero_page: CMAP3 busy"); *CMAP3 = PG_V | PG_RW | phys | PG_A | PG_M; +#ifdef I386_CPU + invltlb(); +#else #ifdef SMP curthread->td_switchin = pmap_zpi_switchin3; #endif invlpg((u_int)CADDR3); +#endif #if defined(I686_CPU) if (cpu_class == CPUCLASS_686) i686_pagezero(CADDR3); @@ -2828,7 +2840,6 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) invlpg((u_int)CADDR2); #endif bcopy(CADDR1, CADDR2, PAGE_SIZE); - #ifdef SMP curthread->td_switchin = NULL; #endif diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 2d00a12270f9..2c76ef0d4a3c 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -2724,10 +2724,14 @@ pmap_zero_page(vm_page_t m) if (*CMAP2) panic("pmap_zero_page: CMAP2 busy"); *CMAP2 = PG_V | PG_RW | phys | PG_A | PG_M; +#ifdef I386_CPU + invltlb(); +#else #ifdef SMP curthread->td_switchin = pmap_zpi_switchin2; #endif invlpg((u_int)CADDR2); +#endif #if defined(I686_CPU) if (cpu_class == CPUCLASS_686) i686_pagezero(CADDR2); @@ -2755,10 +2759,14 @@ pmap_zero_page_area(vm_page_t m, int off, int size) if (*CMAP2) panic("pmap_zero_page: CMAP2 busy"); *CMAP2 = PG_V | PG_RW | phys | PG_A | PG_M; +#ifdef I386_CPU + invltlb(); +#else #ifdef SMP curthread->td_switchin = pmap_zpi_switchin2; #endif invlpg((u_int)CADDR2); +#endif #if defined(I686_CPU) if (cpu_class == CPUCLASS_686 && off == 0 && size == PAGE_SIZE) i686_pagezero(CADDR2); @@ -2786,10 +2794,14 @@ pmap_zero_page_idle(vm_page_t m) if (*CMAP3) panic("pmap_zero_page: CMAP3 busy"); *CMAP3 = PG_V | PG_RW | phys | PG_A | PG_M; +#ifdef I386_CPU + invltlb(); +#else #ifdef SMP curthread->td_switchin = pmap_zpi_switchin3; #endif invlpg((u_int)CADDR3); +#endif #if defined(I686_CPU) if (cpu_class == CPUCLASS_686) i686_pagezero(CADDR3); @@ -2828,7 +2840,6 @@ pmap_copy_page(vm_page_t src, vm_page_t dst) invlpg((u_int)CADDR2); #endif bcopy(CADDR1, CADDR2, PAGE_SIZE); - #ifdef SMP curthread->td_switchin = NULL; #endif |
