Author: nwhitehorn
Date: Wed Apr 11 20:28:05 2012
New Revision: 234149
URL: http://svn.freebsd.org/changeset/base/234149

Log:
  Fix error in r233949. Synchronizing icaches on uncacheable pages turns out
  not to be a good idea, and of course the PV entry list for a page is never
  empty after the page has been mapped.

Modified:
  head/sys/powerpc/aim/mmu_oea.c

Modified: head/sys/powerpc/aim/mmu_oea.c
==============================================================================
--- head/sys/powerpc/aim/mmu_oea.c      Wed Apr 11 20:26:50 2012        
(r234148)
+++ head/sys/powerpc/aim/mmu_oea.c      Wed Apr 11 20:28:05 2012        
(r234149)
@@ -1137,9 +1137,11 @@ moea_enter_locked(pmap_t pmap, vm_offset
        /*
         * Flush the real page from the instruction cache. This has be done
         * for all user mappings to prevent information leakage via the
-        * instruction cache.
+        * instruction cache. moea_pvo_enter() returns ENOENT for the first
+        * mapping for a page.
         */
-       if (pmap != kernel_pmap && LIST_EMPTY(vm_page_to_pvoh(m)))
+       if (pmap != kernel_pmap && error == ENOENT &&
+           (pte_lo & (PTE_I | PTE_G)) == 0)
                moea_syncicache(VM_PAGE_TO_PHYS(m), PAGE_SIZE);
 }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to