From: Daniel Vetter Date: Mon, 30 Mar 2015 14:37:08 +0000 (+0200) Subject: Merge tag 'v4.0-rc6' into drm-intel-next X-Git-Tag: firefly_0821_release~176^2~1470^2~58^2~173 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=6e0aa8018f9c676b115b7ca6c20a056fc57c68a9;p=firefly-linux-kernel-4.4.55.git Merge tag 'v4.0-rc6' into drm-intel-next Backmerge Linux 4.0-rc6 because conflicts are (again) getting out of hand. To make sure we don't lose any bugfixes from the 4.0-rc5-rc6 flurry of patches we've applied them all to -next too. Conflicts: drivers/gpu/drm/i915/intel_display.c Always take the version from -next, we've already handled all conflicts with explicit cherrypicking. Signed-off-by: Daniel Vetter --- 6e0aa8018f9c676b115b7ca6c20a056fc57c68a9 diff --cc drivers/gpu/drm/i915/i915_gem.c index 4ca3dab77fa4,27ea6bdebce7..d07c0b1fb498 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@@ -2660,26 -2737,14 +2660,13 @@@ i915_gem_retire_requests_ring(struct in WARN_ON(i915_verify_lists(ring->dev)); - /* Move any buffers on the active list that are no longer referenced - * by the ringbuffer to the flushing/inactive lists as appropriate, - * before we free the context associated with the requests. + /* Retire requests first as we use it above for the early return. + * If we retire requests last, we may use a later seqno and so clear + * the requests lists without clearing the active list, leading to + * confusion. */ - while (!list_empty(&ring->active_list)) { - struct drm_i915_gem_object *obj; - - obj = list_first_entry(&ring->active_list, - struct drm_i915_gem_object, - ring_list); - - if (!i915_gem_request_completed(obj->last_read_req, true)) - break; - - i915_gem_object_move_to_inactive(obj); - } - - while (!list_empty(&ring->request_list)) { struct drm_i915_gem_request *request; - struct intel_ringbuffer *ringbuf; request = list_first_entry(&ring->request_list, struct drm_i915_gem_request,