PERFORCE change 149896 for review

Rafal Jaworowski raj at FreeBSD.org
Tue Sep 16 20:00:03 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=149896

Change 149896 by raj at raj_mimi on 2008/09/16 19:59:50

	Move pmap_remove() L2 cache invalidation to a proper place.
	
	Previously it was causing a gratuitous page fault, which
	led to a nasty LOR.
	
	Obtained from:	Semihalf

Affected files ...

.. //depot/projects/arm/src/sys/arm/arm/pmap.c#42 edit

Differences ...

==== //depot/projects/arm/src/sys/arm/arm/pmap.c#42 (text+ko) ====

@@ -3874,15 +3874,17 @@
 			if (l2pte_valid(pte) && pmap_is_current(pm)) {
 				if (total < PMAP_REMOVE_CLEAN_LIST_SIZE) {
 					total++;
-        				cpu_l2cache_wbinv_range(sva,
-					    PAGE_SIZE);
 			   		if (is_exec) {
         					cpu_idcache_wbinv_range(sva,
-								 PAGE_SIZE);
+						    PAGE_SIZE);
+						cpu_l2cache_wbinv_range(sva,
+						    PAGE_SIZE);
 						cpu_tlb_flushID_SE(sva);
 			   		} else if (is_refd) {
 						cpu_dcache_wbinv_range(sva,
-								 PAGE_SIZE);
+						    PAGE_SIZE);
+						cpu_l2cache_wbinv_range(sva,
+						    PAGE_SIZE);
 						cpu_tlb_flushD_SE(sva);
 					}
 				} else if (total == PMAP_REMOVE_CLEAN_LIST_SIZE) {


More information about the p4-projects mailing list