diff mbox series

drm/i915: Fix potential spectre vulnerability

Message ID 20231102101642.52988-1-chentao@kylinos.cn (mailing list archive)
State New, archived
Headers show
Series drm/i915: Fix potential spectre vulnerability | expand

Commit Message

Kunwu Nov. 2, 2023, 10:16 a.m. UTC
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@kylinos.cn>
---
 drivers/gpu/drm/i915/gem/i915_gem_context.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Kunwu Nov. 3, 2023, 2:31 a.m. UTC | #1
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@kylinos.cn>
> 
> 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@vger.kernel.org> # 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. */
diff mbox series

Patch

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