FAILED: patch "[PATCH] drm/i915/gt: Prevent use of engine->wa_ctx after error" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 488751a0ef9b5ce572c47301ce62d54fc6b5a74d Mon Sep 17 00:00:00 2001
From: Chris Wilson <[email protected]>
Date: Mon, 18 Jan 2021 09:53:32 +0000
Subject: [PATCH] drm/i915/gt: Prevent use of engine->wa_ctx after error
On error we unpin and free the wa_ctx.vma, but do not clear any of the derived flags. During lrc_init, we look at the flags and attempt to dereference the wa_ctx.vma if they are set. To protect the error path where we try to limp along without the wa_ctx, make sure we clear those flags!
(cherry-picked from 5b4dc95cf7f573e927fbbd406ebe54225d41b9b2)
drivers/gpu/drm/i915/gt/intel_lrc.c +3 -0
@@ -3988,6 +3988,9 @@ static int lrc_setup_wa_ctx(struct intel_engine_cs *engine)static void lrc_destroy_wa_ctx (struct intel_engine_cs *engine) {i915_vma_unpin_and_release (&engine->wa_ctx.vma,0 ); + +/* Called on error unwind, clear all flags to prevent further use */ +memset (&engine->wa_ctx,0 ,sizeof (engine->wa_ctx)); }typedef u32 *(*wa_bb_func_t )(struct intel_engine_cs *engine,u32 *batch);