[Intel-gfx] [PATCH] drm/i915: Avoid using simd from interrupt context

Chris Wilson chris at chris-wilson.co.uk
Sun May 3 20:31:08 UTC 2020


Query whether or not we are in a legal context for using SIMD, before
using SSE4.2 registers.

Suggested-by: Jason A. Donenfeld <Jason at zx2c4.com>
Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_memcpy.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_memcpy.c b/drivers/gpu/drm/i915/i915_memcpy.c
index 7b3b83bd5ab8..fc18d6c28d5f 100644
--- a/drivers/gpu/drm/i915/i915_memcpy.c
+++ b/drivers/gpu/drm/i915/i915_memcpy.c
@@ -24,6 +24,7 @@
 
 #include <linux/kernel.h>
 #include <asm/fpu/api.h>
+#include <asm/simd.h>
 
 #include "i915_memcpy.h"
 
@@ -115,6 +116,9 @@ bool i915_memcpy_from_wc(void *dst, const void *src, unsigned long len)
 	if (unlikely(((unsigned long)dst | (unsigned long)src | len) & 15))
 		return false;
 
+	if (unlikely(!may_use_simd()))
+		return false;
+
 	if (static_branch_likely(&has_movntdqa)) {
 		if (likely(len))
 			__memcpy_ntdqa(dst, src, len >> 4);
-- 
2.20.1



More information about the Intel-gfx mailing list