kernel/eka/include/kernel/cache_maintenance.h
changeset 2 4122176ea935
parent 0 a41df078684a
child 8 538db54a451d
--- a/kernel/eka/include/kernel/cache_maintenance.h	Mon Oct 19 15:55:17 2009 +0100
+++ b/kernel/eka/include/kernel/cache_maintenance.h	Mon Dec 21 16:14:42 2009 +0000
@@ -803,9 +803,15 @@
  * 			the client may decide to use CacheMaintenance::SyncPhysicalCache_All
  * 			instead of CacheMaintenance::PageToReuse.
  */
-	static TUint SyncAllPerformanceThresholdPages()
+	inline static TUint SyncAllPerformanceThresholdPages()
 	{
+#if defined(__ARM_PL310_CACHE__) && !defined(__ARM_PL310_ERRATUM_588369_FIXED)
+	// Clean&Invalidate by Set/Way in pl310 is broken, so we cannot maintain entire cache(s).
+	// This will ensure no cache threshold is reached so all cache maitenance will be performed by cache line(s).
+	return KMaxTUint;
+#else
 	return InternalCache::Info[KCacheInfoD].InvalidateThresholdPages();
+#endif // #if defined(__ARM_PL310_CACHE__) && !defined(__ARM_PL310_ERRATUM_588369_FIXED)
 	}
 
 #endif // #if defined(__MEMMODEL_MOVING__) || defined(__MEMMODEL_MULTIPLE__)