diff options
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, 20 insertions, 6 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index fdbade3..881a2cc 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -700,8 +700,11 @@ pmap_kenter(vm_offset_t va, vm_offset_t pa) pte = vtopte(va); opte = *pte; *pte = npte; - /*if (opte)*/ - invltlb_1pg(va); /* XXX what about SMP? */ +#ifdef SMP + invlpg(va); +#else + invltlb_1pg(va); +#endif } /* @@ -714,7 +717,11 @@ pmap_kremove(vm_offset_t va) pte = vtopte(va); *pte = 0; - invltlb_1pg(va); /* XXX what about SMP? */ +#ifdef SMP + invlpg(va); +#else + invltlb_1pg(va); +#endif } /* diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index fdbade3..881a2cc 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -700,8 +700,11 @@ pmap_kenter(vm_offset_t va, vm_offset_t pa) pte = vtopte(va); opte = *pte; *pte = npte; - /*if (opte)*/ - invltlb_1pg(va); /* XXX what about SMP? */ +#ifdef SMP + invlpg(va); +#else + invltlb_1pg(va); +#endif } /* @@ -714,7 +717,11 @@ pmap_kremove(vm_offset_t va) pte = vtopte(va); *pte = 0; - invltlb_1pg(va); /* XXX what about SMP? */ +#ifdef SMP + invlpg(va); +#else + invltlb_1pg(va); +#endif } /* |