Merge tag 'v4.0-rc6' into drm-intel-next
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 30 Mar 2015 14:37:08 +0000 (16:37 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 30 Mar 2015 14:37:08 +0000 (16:37 +0200)
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 <daniel.vetter@intel.com>
1  2 
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,