diff options
| -rw-r--r-- | linux-core/i915_buffer.c | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/linux-core/i915_buffer.c b/linux-core/i915_buffer.c index 3dd236dd..08067476 100644 --- a/linux-core/i915_buffer.c +++ b/linux-core/i915_buffer.c @@ -286,7 +286,18 @@ void i915_flush_ttm(struct drm_ttm *ttm)  		return;  	DRM_MEMORYBARRIER(); + +#ifdef CONFIG_X86_32 +	/* Hopefully nobody has built an x86-64 processor without clflush */ +	if (!cpu_has_clflush) { +		wbinvd(); +		DRM_MEMORYBARRIER(); +		return; +	} +#endif +  	for (i = ttm->num_pages - 1; i >= 0; i--)  		drm_cache_flush_page(drm_ttm_get_page(ttm, i)); +  	DRM_MEMORYBARRIER();  } | 
