From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sam Ravnborg Subject: Re: [PATCH 09/51] drm/cirrus: Use drmm_add_final_kfree Date: Thu, 27 Feb 2020 22:01:02 +0100 Message-ID: <20200227210102.GC29498@ravnborg.org> References: <20200227181522.2711142-1-daniel.vetter@ffwll.ch> <20200227181522.2711142-10-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Content-Disposition: inline In-Reply-To: <20200227181522.2711142-10-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Intel Graphics Development , m.felsch@pengutronix.de, DRI Development , virtualization@lists.linux-foundation.org, Noralf =?iso-8859-1?Q?Tr=F8nnes?= , Gerd Hoffmann , Thomas Zimmermann , Dave Airlie , Daniel Vetter , Linus Walleij , l.stach@pengutronix.de List-Id: virtualization@lists.linuxfoundation.org On Thu, Feb 27, 2020 at 07:14:40PM +0100, Daniel Vetter wrote: > With this we can drop the final kfree from the release function. > = > I also noticed that cirrus forgot to call drm_dev_fini(). > = > v2: Don't call kfree(cirrus) after we've handed overship of that to > drm_device and the drmm_ stuff. > = > Signed-off-by: Daniel Vetter > Cc: Dave Airlie > Cc: Gerd Hoffmann > Cc: Daniel Vetter > Cc: "Noralf Tr=F8nnes" > Cc: Linus Walleij > Cc: Sam Ravnborg > Cc: Thomas Zimmermann > Cc: virtualization@lists.linux-foundation.org Acked-by: Sam Ravnborg > --- > drivers/gpu/drm/cirrus/cirrus.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > = > diff --git a/drivers/gpu/drm/cirrus/cirrus.c b/drivers/gpu/drm/cirrus/cir= rus.c > index d2ff63ce8eaf..2232556ce34c 100644 > --- a/drivers/gpu/drm/cirrus/cirrus.c > +++ b/drivers/gpu/drm/cirrus/cirrus.c > @@ -35,6 +35,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -527,10 +528,8 @@ static void cirrus_mode_config_init(struct cirrus_de= vice *cirrus) > = > static void cirrus_release(struct drm_device *dev) > { > - struct cirrus_device *cirrus =3D dev->dev_private; > - > drm_mode_config_cleanup(dev); > - kfree(cirrus); > + drm_dev_fini(dev); > } > = > DEFINE_DRM_GEM_FOPS(cirrus_fops); > @@ -575,9 +574,12 @@ static int cirrus_pci_probe(struct pci_dev *pdev, > = > dev =3D &cirrus->dev; > ret =3D drm_dev_init(dev, &cirrus_driver, &pdev->dev); > - if (ret) > - goto err_free_cirrus; > + if (ret) { > + kfree(cirrus); > + goto err_pci_release; > + } > dev->dev_private =3D cirrus; > + drmm_add_final_kfree(dev, cirrus); > = > ret =3D -ENOMEM; > cirrus->vram =3D ioremap(pci_resource_start(pdev, 0), > @@ -618,8 +620,6 @@ static int cirrus_pci_probe(struct pci_dev *pdev, > iounmap(cirrus->vram); > err_dev_put: > drm_dev_put(dev); > -err_free_cirrus: > - kfree(cirrus); > err_pci_release: > pci_release_regions(pdev); > return ret; > -- = > 2.24.1