[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACvgo514T=PZCWwhNsYqCC504SJ+2WivcRtmHhDoKsWMSLFU4A@mail.gmail.com>
Date: Wed, 30 Jun 2021 01:16:10 +0100
From: Emil Velikov <emil.l.velikov@...il.com>
To: Desmond Cheong Zhi Xi <desmondcheongzx@...il.com>
Cc: Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>,
Dave Airlie <airlied@...ux.ie>,
Daniel Vetter <daniel@...ll.ch>,
Sumit Semwal <sumit.semwal@...aro.org>,
Christian König <christian.koenig@....com>,
ML dri-devel <dri-devel@...ts.freedesktop.org>,
Intel Graphics Development <intel-gfx@...ts.freedesktop.org>,
"Linux-Kernel@...r. Kernel. Org" <linux-kernel@...r.kernel.org>,
linux-media@...r.kernel.org, linaro-mm-sig@...ts.linaro.org,
skhan@...uxfoundation.org,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux-kernel-mentees@...ts.linuxfoundation.org,
Daniel Vetter <daniel.vetter@...ll.ch>
Subject: Re: [PATCH v5 3/3] drm: protect drm_master pointers in drm_lease.c
Hi Desmond,
Couple of small suggestions, with those the series is:
Reviewed-by: Emil Velikov <emil.l.velikov@...il.com>
On Tue, 29 Jun 2021 at 04:38, Desmond Cheong Zhi Xi
<desmondcheongzx@...il.com> 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
Powered by blists - more mailing lists