From b00dcfdf74238bef018eec1d8bdecde3a321750b Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Mon, 31 Dec 2001 20:02:46 +0000 Subject: You know those 'XXX what about SMP' comments in pmap_kenter()? Well, they were right. Fix both kenter() and kremove() for SMP by ensuring that the tlb is flushed on other cpu's. This will directly solve random-corruption panic issues in -stable when it is MFC'd. Better to be safe then sorry, we can optimize this later. Original Suspicion by: peter Maybe MFC: immediately on re's permission --- sys/amd64/amd64/pmap.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'sys/amd64') diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index fdbade3085a0..881a2ccfb748 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 } /* -- cgit v1.3