From: Chris Wilson Date: Wed, 8 Mar 2017 14:22:38 +0000 (+0000) Subject: drm/i915: Check for an invalid seqno before __i915_gem_request_started X-Git-Tag: v5.15~11060^2~31^2~101 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5b5554c51d38a227c4c5bee6e57026e4ebb0bde9;p=platform%2Fkernel%2Flinux-starfive.git drm/i915: Check for an invalid seqno before __i915_gem_request_started __i915_gem_request_started() asserts that the seqno is valid, but i915_spin_request() was not checking before querying whether the request had started. Reported-by: Michał Winiarski Fixes: 754c9fd57649 ("drm/i915: Protect the request->global_seqno with the engine->timeline lock") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Michał Winiarski Link: http://patchwork.freedesktop.org/patch/msgid/20170308142238.22994-1-chris@chris-wilson.co.uk Reviewed-by: Michał Winiarski Reviewed-by: Tvrtko Ursulin --- diff --git a/drivers/gpu/drm/i915/i915_gem_request.h b/drivers/gpu/drm/i915/i915_gem_request.h index 5018e55..0cef887 100644 --- a/drivers/gpu/drm/i915/i915_gem_request.h +++ b/drivers/gpu/drm/i915/i915_gem_request.h @@ -348,6 +348,9 @@ static inline bool i915_spin_request(const struct drm_i915_gem_request *request, u32 seqno; seqno = i915_gem_request_global_seqno(request); + if (!seqno) + return 0; + return (__i915_gem_request_started(request, seqno) && __i915_spin_request(request, seqno, state, timeout_us)); }