Take the ww lock around engine_unpark. Because of the
many many places where rpm is used, I chose the safest option
and used a trylock to opportunistically take this lock for
__engine_unpark.

Signed-off-by: Maarten Lankhorst <maarten.lankho...@linux.intel.com>
Reviewed-by: Thomas Hellström <thomas.hellst...@linux.intel.com>
---
 drivers/gpu/drm/i915/gt/intel_engine_pm.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_pm.c 
b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
index 6372d7826bc9..7c9af86fdb1e 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_pm.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_pm.c
@@ -26,12 +26,16 @@ static void dbg_poison_ce(struct intel_context *ce)
                int type = i915_coherent_map_type(ce->engine->i915);
                void *map;
 
+               if (!i915_gem_object_trylock(obj))
+                       return;
+
                map = i915_gem_object_pin_map(obj, type);
                if (!IS_ERR(map)) {
                        memset(map, CONTEXT_REDZONE, obj->base.size);
                        i915_gem_object_flush_map(obj);
                        i915_gem_object_unpin_map(obj);
                }
+               i915_gem_object_unlock(obj);
        }
 }
 
-- 
2.30.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to