Author: jmallett
Date: Fri Apr 23 18:53:17 2010
New Revision: 207130
URL: http://svn.freebsd.org/changeset/base/207130

Log:
  Large memory mappings are always CPU local and always done with interrupts
  disabled.  Be doubly-sure that we don't try to do a TLB shootdown on SMP
  systems for those mappings.
  
  Submitted by: C. Jayachandran

Modified:
  head/sys/mips/mips/pmap.c

Modified: head/sys/mips/mips/pmap.c
==============================================================================
--- head/sys/mips/mips/pmap.c   Fri Apr 23 18:01:19 2010        (r207129)
+++ head/sys/mips/mips/pmap.c   Fri Apr 23 18:53:17 2010        (r207130)
@@ -251,11 +251,11 @@ caddr_t virtual_sys_start = (caddr_t)0;
 #define        PMAP_LMEM_UNMAP()                                               
\
        pte = pmap_pte(kernel_pmap, sysm->base);                        \
        *pte = PTE_G;                                                   \
-       pmap_invalidate_page(kernel_pmap, sysm->base);                  \
+       pmap_TLB_invalidate_kernel(sysm->base);                         \
        sysm->valid1 = 0;                                               \
        pte = pmap_pte(kernel_pmap, sysm->base + PAGE_SIZE);            \
        *pte = PTE_G;                                                   \
-       pmap_invalidate_page(kernel_pmap, sysm->base + PAGE_SIZE);      \
+       pmap_TLB_invalidate_kernel(sysm->base + PAGE_SIZE);             \
        sysm->valid2 = 0;                                               \
        sched_unpin();                                                  \
        intr_restore(intr);                                             \
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to