On Tue, Mar 10, 2015 at 12:02:28PM +0000, Tvrtko Ursulin wrote:
> >@@ -13707,13 +13709,18 @@ void intel_modeset_gem_init(struct drm_device *dev)
> >                                            NULL)) {
> >                     DRM_ERROR("failed to pin boot fb on pipe %d\n",
> >                               to_intel_crtc(c)->pipe);
> >-                    drm_framebuffer_unreference(c->primary->fb);
> >-                    c->primary->fb = NULL;
> >-                    update_state_fb(c->primary);
> >+                    unused[n_unused++] = c->primary;
> >             }
> >     }
> >     mutex_unlock(&dev->struct_mutex);
> >
> >+    while (n_unused--) {
> >+            struct drm_plane *p = unused[n_unused];
> >+            drm_framebuffer_unreference(p->fb);
> >+            p->fb = NULL;
> >+            update_state_fb(p);
> >+    }
> >+
> 
> For this one I am not sure. Should c->primary->fb = NULL remain
> under the locked loop? If not what is the the mutex protecting then?

It's a dummy mutex that only exists to keep the WARNs quiet. This phase
of initialisation is explicitly single-threaded.
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to