Re: [PATCH] drm/i915: Fix potential spectre vulnerability

From: Kunwu Chan
Date: Thu Nov 02 2023 - 22:32:05 EST


Hi Tvrtko,
Thank you very much for your kind suggestion, I have modified it in accordance with your suggestion.

On 2023/11/2 19:32, Tvrtko Ursulin wrote:

On 02/11/2023 10:16, chentao wrote:
Fix smatch warning:
drivers/gpu/drm/i915/gem/i915_gem_context.c:847 set_proto_ctx_sseu()
warn: potential spectre issue 'pc->user_engines' [r] (local cap)

Signed-off-by: chentao <chentao@xxxxxxxxxx>

I don't know if this is actually exploitable given the time deltas between the index is read from userspace and acted upon here, which is at least two ioctls apart. But I suppose no harm in fixing and for safety so we need to add:

Fixes: d4433c7600f7 ("drm/i915/gem: Use the proto-context to handle create parameters (v5)")
Cc: <stable@xxxxxxxxxxxxxxx> # v5.15+

---
  drivers/gpu/drm/i915/gem/i915_gem_context.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_context.c b/drivers/gpu/drm/i915/gem/i915_gem_context.c
index 9a9ff84c90d7..b2fdfc7ca4de 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_context.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_context.c
@@ -843,7 +843,7 @@ static int set_proto_ctx_sseu(struct drm_i915_file_private *fpriv,
          if (idx >= pc->num_user_engines)
              return -EINVAL;
-

Just please refrain from random whitespace modifications like this blank line removal. If you resend without that you can add my r-b.

Regards,

Tvrtko

+        idx = array_index_nospec(idx, pc->num_user_engines);
          pe = &pc->user_engines[idx];
          /* Only render engine supports RPCS configuration. */