drm/lease: Check for lessor outside of locks
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 28 Feb 2019 14:49:07 +0000 (15:49 +0100)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 24 Apr 2019 09:29:32 +0000 (11:29 +0200)
The lessor is invariant over a lifetime of a lease, we don't have to
grab any locks for that. Speeds up the common case of not being a lease.

Cc: Keith Packard <keithp@keithp.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20190228144910.26488-5-daniel.vetter@ffwll.ch
drivers/gpu/drm/drm_lease.c

index cce5d9dd52ffff65b516bdb035a839110b629fcb..694ff363a90b341d0d7cde9f3ef447905793bcea 100644 (file)
@@ -111,7 +111,7 @@ static bool _drm_has_leased(struct drm_master *master, int id)
  */
 bool _drm_lease_held(struct drm_file *file_priv, int id)
 {
-       if (file_priv == NULL || file_priv->master == NULL)
+       if (!file_priv || !file_priv->master)
                return true;
 
        return _drm_lease_held_master(file_priv->master, id);
@@ -133,7 +133,7 @@ bool drm_lease_held(struct drm_file *file_priv, int id)
        struct drm_master *master;
        bool ret;
 
-       if (file_priv == NULL || file_priv->master == NULL)
+       if (!file_priv || !file_priv->master || !file_priv->master->lessor)
                return true;
 
        master = file_priv->master;
@@ -159,7 +159,7 @@ uint32_t drm_lease_filter_crtcs(struct drm_file *file_priv, uint32_t crtcs_in)
        int count_in, count_out;
        uint32_t crtcs_out = 0;
 
-       if (file_priv == NULL || file_priv->master == NULL)
+       if (!file_priv || !file_priv->master || !file_priv->master->lessor)
                return crtcs_in;
 
        master = file_priv->master;