drm/vmwgfx: Stop using plane->fb in vmw_kms_update_implicit_fb()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 25 May 2018 18:50:35 +0000 (21:50 +0300)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Mon, 11 Jun 2018 17:22:44 +0000 (20:22 +0300)
The only caller of vmw_kms_update_implicit_fb() is the page_flip
hook which itself gets called with the plane mutex already held.
Hence we can look at plane->state safely.

v2: Drop the bogus lockdep assert

Cc: Deepak Rawat <drawat@vmware.com>
Cc: Thomas Hellstrom <thellstrom@vmware.com>
Cc: Sinclair Yeh <syeh@vmware.com>
Cc: VMware Graphics <linux-graphics-maintainer@vmware.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180525185045.29689-4-ville.syrjala@linux.intel.com
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c

index 146ea18d765ecc50ed2979df31fad06be4ea3a9f..e6889682205f446c7848d33c9f07ad168559684d 100644 (file)
@@ -2803,6 +2803,7 @@ void vmw_kms_update_implicit_fb(struct vmw_private *dev_priv,
                                struct drm_crtc *crtc)
 {
        struct vmw_display_unit *du = vmw_crtc_to_du(crtc);
+       struct drm_plane *plane = crtc->primary;
        struct vmw_framebuffer *vfb;
 
        mutex_lock(&dev_priv->global_kms_state_mutex);
@@ -2810,7 +2811,7 @@ void vmw_kms_update_implicit_fb(struct vmw_private *dev_priv,
        if (!du->is_implicit)
                goto out_unlock;
 
-       vfb = vmw_framebuffer_to_vfb(crtc->primary->fb);
+       vfb = vmw_framebuffer_to_vfb(plane->state->fb);
        WARN_ON_ONCE(dev_priv->num_implicit != 1 &&
                     dev_priv->implicit_fb != vfb);