Hi Desmond, Couple of small suggestions, with those the series is: Reviewed-by: Emil Velikov <emil.l.velikov@xxxxxxxxx> On Tue, 29 Jun 2021 at 04:38, Desmond Cheong Zhi Xi <desmondcheongzx@xxxxxxxxx> wrote: > @@ -128,13 +137,20 @@ bool drm_lease_held(struct drm_file *file_priv, int id) > struct drm_master *master; > bool ret; > > - if (!file_priv || !file_priv->master || !file_priv->master->lessor) > + if (!file_priv) > return true; > > - master = file_priv->master; > + master = drm_file_get_master(file_priv); > + if (master == NULL) > + return true; > + if (!master->lessor) { > + drm_master_put(&master); > + return true; Let's add a "ret = true; goto unlock;" here, so we can have a single drm_master_put() in the function. Nearly all code paths touched by this patch already follow this approach. > @@ -154,10 +170,16 @@ 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 || !file_priv->master || !file_priv->master->lessor) > + if (!file_priv) > return crtcs_in; > > - master = file_priv->master; > + master = drm_file_get_master(file_priv); > + if (master == NULL) > + return crtcs_in; > + if (!master->lessor) { > + drm_master_put(&master); > + return crtcs_in; Ditto Thanks Emil