public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
* [PATCH 38/51] drm/stm: Drop explicit drm_mode_config_cleanup call
       [not found] <20200221210319.2245170-1-daniel.vetter@ffwll.ch>
@ 2020-02-21 21:03 ` Daniel Vetter
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Vetter @ 2020-02-21 21:03 UTC (permalink / raw)
  To: DRI Development
  Cc: Maxime Coquelin, Daniel Vetter, Intel Graphics Development,
	Philippe Cornu, Yannick Fertre, Laurent Pinchart,
	Benjamin Gaignard, Daniel Vetter, Vincent Abriou, linux-stm32,
	linux-arm-kernel, Alexandre Torgue

It's right above the drm_dev_put().

This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().

Aside: Another driver with a bit much devm_kzalloc, which should
probably use drmm_kzalloc instead ...

v2: Explain why this cleanup is possible (Laurent).

Acked-by: Philippe Cornu <philippe.cornu@st•com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard•com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel•com>
Cc: Yannick Fertre <yannick.fertre@st•com>
Cc: Philippe Cornu <philippe.cornu@st•com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro•org>
Cc: Vincent Abriou <vincent.abriou@st•com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail•com>
Cc: Alexandre Torgue <alexandre.torgue@st•com>
Cc: linux-stm32@st-md-mailman•stormreply.com
Cc: linux-arm-kernel@lists•infradead.org
---
 drivers/gpu/drm/stm/drv.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
index ea9fcbdc68b3..5b374531dd8c 100644
--- a/drivers/gpu/drm/stm/drv.c
+++ b/drivers/gpu/drm/stm/drv.c
@@ -88,7 +88,9 @@ static int drv_load(struct drm_device *ddev)
 
 	ddev->dev_private = (void *)ldev;
 
-	drm_mode_config_init(ddev);
+	ret = drm_mode_config_init(ddev);
+	if (ret)
+		return ret;
 
 	/*
 	 * set max width and height as default value.
@@ -103,7 +105,7 @@ static int drv_load(struct drm_device *ddev)
 
 	ret = ltdc_load(ddev);
 	if (ret)
-		goto err;
+		return ret;
 
 	drm_mode_config_reset(ddev);
 	drm_kms_helper_poll_init(ddev);
@@ -111,9 +113,6 @@ static int drv_load(struct drm_device *ddev)
 	platform_set_drvdata(pdev, ddev);
 
 	return 0;
-err:
-	drm_mode_config_cleanup(ddev);
-	return ret;
 }
 
 static void drv_unload(struct drm_device *ddev)
@@ -122,7 +121,6 @@ static void drv_unload(struct drm_device *ddev)
 
 	drm_kms_helper_poll_fini(ddev);
 	ltdc_unload(ddev);
-	drm_mode_config_cleanup(ddev);
 }
 
 static __maybe_unused int drv_suspend(struct device *dev)
-- 
2.24.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 38/51] drm/stm: Drop explicit drm_mode_config_cleanup call
       [not found] <20200227181522.2711142-1-daniel.vetter@ffwll.ch>
@ 2020-02-27 18:15 ` Daniel Vetter
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Vetter @ 2020-02-27 18:15 UTC (permalink / raw)
  To: DRI Development
  Cc: Maxime Coquelin, Daniel Vetter, Intel Graphics Development,
	Philippe Cornu, m.felsch, Yannick Fertre, Alexandre Torgue,
	Laurent Pinchart, Benjamin Gaignard, Daniel Vetter,
	Vincent Abriou, linux-stm32, linux-arm-kernel, l.stach

It's right above the drm_dev_put().

This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().

Aside: Another driver with a bit much devm_kzalloc, which should
probably use drmm_kzalloc instead ...

v2: Explain why this cleanup is possible (Laurent).

Acked-by: Philippe Cornu <philippe.cornu@st•com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard•com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel•com>
Cc: Yannick Fertre <yannick.fertre@st•com>
Cc: Philippe Cornu <philippe.cornu@st•com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro•org>
Cc: Vincent Abriou <vincent.abriou@st•com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail•com>
Cc: Alexandre Torgue <alexandre.torgue@st•com>
Cc: linux-stm32@st-md-mailman•stormreply.com
Cc: linux-arm-kernel@lists•infradead.org
---
 drivers/gpu/drm/stm/drv.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
index ea9fcbdc68b3..5b374531dd8c 100644
--- a/drivers/gpu/drm/stm/drv.c
+++ b/drivers/gpu/drm/stm/drv.c
@@ -88,7 +88,9 @@ static int drv_load(struct drm_device *ddev)
 
 	ddev->dev_private = (void *)ldev;
 
-	drm_mode_config_init(ddev);
+	ret = drm_mode_config_init(ddev);
+	if (ret)
+		return ret;
 
 	/*
 	 * set max width and height as default value.
@@ -103,7 +105,7 @@ static int drv_load(struct drm_device *ddev)
 
 	ret = ltdc_load(ddev);
 	if (ret)
-		goto err;
+		return ret;
 
 	drm_mode_config_reset(ddev);
 	drm_kms_helper_poll_init(ddev);
@@ -111,9 +113,6 @@ static int drv_load(struct drm_device *ddev)
 	platform_set_drvdata(pdev, ddev);
 
 	return 0;
-err:
-	drm_mode_config_cleanup(ddev);
-	return ret;
 }
 
 static void drv_unload(struct drm_device *ddev)
@@ -122,7 +121,6 @@ static void drv_unload(struct drm_device *ddev)
 
 	drm_kms_helper_poll_fini(ddev);
 	ltdc_unload(ddev);
-	drm_mode_config_cleanup(ddev);
 }
 
 static __maybe_unused int drv_suspend(struct device *dev)
-- 
2.24.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 34/51] drm/meson: Drop explicit drm_mode_config_cleanup call
       [not found] <20200302222631.3861340-1-daniel.vetter@ffwll.ch>
@ 2020-03-02 22:26 ` Daniel Vetter
  2020-03-02 22:26 ` [PATCH 37/51] drm/rockchip: " Daniel Vetter
  2020-03-02 22:26 ` [PATCH 38/51] drm/stm: " Daniel Vetter
  2 siblings, 0 replies; 8+ messages in thread
From: Daniel Vetter @ 2020-03-02 22:26 UTC (permalink / raw)
  To: DRI Development
  Cc: Neil Armstrong, Daniel Vetter, Intel Graphics Development,
	Laurent Pinchart, Thomas Zimmermann, Kevin Hilman, Daniel Vetter,
	linux-amlogic, Sam Ravnborg, linux-arm-kernel

It's right above the drm_dev_put().

This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().

Aside: This driver gets its devm_ stuff all wrong wrt drm_device and
anything hanging off that. Not the only one unfortunately.

v2: Explain why this cleanup is possible (Laurent).

v3: Use drmm_mode_config_init() for more clarity (Sam, Thomas)

Cc: Sam Ravnborg <sam@ravnborg•org>
Cc: Thomas Zimmermann <tzimmermann@suse•de>
Reviewed-by: Neil Armstrong <narmstrong@baylibre•com> (v2)
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard•com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel•com>
Cc: Neil Armstrong <narmstrong@baylibre•com>
Cc: Kevin Hilman <khilman@baylibre•com>
Cc: linux-amlogic@lists•infradead.org
Cc: linux-arm-kernel@lists•infradead.org
---
 drivers/gpu/drm/meson/meson_drv.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/meson/meson_drv.c b/drivers/gpu/drm/meson/meson_drv.c
index b5f5eb7b4bb9..6f29fab79952 100644
--- a/drivers/gpu/drm/meson/meson_drv.c
+++ b/drivers/gpu/drm/meson/meson_drv.c
@@ -284,7 +284,9 @@ static int meson_drv_bind_master(struct device *dev, bool has_components)
 	/* Remove early framebuffers (ie. simplefb) */
 	meson_remove_framebuffers();
 
-	drm_mode_config_init(drm);
+	ret = drmm_mode_config_init(drm);
+	if (ret)
+		goto free_drm;
 	drm->mode_config.max_width = 3840;
 	drm->mode_config.max_height = 2160;
 	drm->mode_config.funcs = &meson_mode_config_funcs;
@@ -379,7 +381,6 @@ static void meson_drv_unbind(struct device *dev)
 	drm_dev_unregister(drm);
 	drm_irq_uninstall(drm);
 	drm_kms_helper_poll_fini(drm);
-	drm_mode_config_cleanup(drm);
 	drm_dev_put(drm);
 }
 
-- 
2.24.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
       [not found] <20200302222631.3861340-1-daniel.vetter@ffwll.ch>
  2020-03-02 22:26 ` [PATCH 34/51] drm/meson: Drop explicit drm_mode_config_cleanup call Daniel Vetter
@ 2020-03-02 22:26 ` Daniel Vetter
  2020-03-07  8:38   ` Sam Ravnborg
  2020-03-02 22:26 ` [PATCH 38/51] drm/stm: " Daniel Vetter
  2 siblings, 1 reply; 8+ messages in thread
From: Daniel Vetter @ 2020-03-02 22:26 UTC (permalink / raw)
  To: DRI Development
  Cc: Heiko Stübner, Francesco Lavra, Daniel Vetter,
	Intel Graphics Development, Sandy Huang, linux-rockchip,
	Laurent Pinchart, Thomas Zimmermann, Daniel Vetter, Sam Ravnborg,
	linux-arm-kernel

It's (almost, there's some iommu stuff without significance) right
above the drm_dev_put().

This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().

Aside: Another driver with a bit much devm_kzalloc, which should
probably use drmm_kzalloc instead ...

v2: Explain why this cleanup is possible (Laurent).

v3: Jump out at the right label (Francesco)

v4: Try again, kbuild caught that I didn't build test this properly
...

v5: Use drmm_mode_config_init() for more clarity (Sam, Thomas)

Cc: Sam Ravnborg <sam@ravnborg•org>
Cc: Thomas Zimmermann <tzimmermann@suse•de>
Cc: Francesco Lavra <francescolavra.fl@gmail•com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard•com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel•com>
Cc: Sandy Huang <hjc@rock-chips•com>
Cc: "Heiko Stübner" <heiko@sntech•de>
Cc: linux-arm-kernel@lists•infradead.org
Cc: linux-rockchip@lists•infradead.org
---
 drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 20ecb1508a22..0f3eb392fe39 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -135,14 +135,16 @@ static int rockchip_drm_bind(struct device *dev)
 	if (ret)
 		goto err_free;
 
-	drm_mode_config_init(drm_dev);
+	ret = drmm_mode_config_init(drm_dev);
+	if (ret)
+		goto err_iommu_cleanup;
 
 	rockchip_drm_mode_config_init(drm_dev);
 
 	/* Try to bind all sub drivers. */
 	ret = component_bind_all(dev, drm_dev);
 	if (ret)
-		goto err_mode_config_cleanup;
+		goto err_iommu_cleanup;
 
 	ret = drm_vblank_init(drm_dev, drm_dev->mode_config.num_crtc);
 	if (ret)
@@ -173,12 +175,9 @@ static int rockchip_drm_bind(struct device *dev)
 	rockchip_drm_fbdev_fini(drm_dev);
 err_unbind_all:
 	component_unbind_all(dev, drm_dev);
-err_mode_config_cleanup:
-	drm_mode_config_cleanup(drm_dev);
+err_iommu_cleanup:
 	rockchip_iommu_cleanup(drm_dev);
 err_free:
-	drm_dev->dev_private = NULL;
-	dev_set_drvdata(dev, NULL);
 	drm_dev_put(drm_dev);
 	return ret;
 }
@@ -194,11 +193,8 @@ static void rockchip_drm_unbind(struct device *dev)
 
 	drm_atomic_helper_shutdown(drm_dev);
 	component_unbind_all(dev, drm_dev);
-	drm_mode_config_cleanup(drm_dev);
 	rockchip_iommu_cleanup(drm_dev);
 
-	drm_dev->dev_private = NULL;
-	dev_set_drvdata(dev, NULL);
 	drm_dev_put(drm_dev);
 }
 
-- 
2.24.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 38/51] drm/stm: Drop explicit drm_mode_config_cleanup call
       [not found] <20200302222631.3861340-1-daniel.vetter@ffwll.ch>
  2020-03-02 22:26 ` [PATCH 34/51] drm/meson: Drop explicit drm_mode_config_cleanup call Daniel Vetter
  2020-03-02 22:26 ` [PATCH 37/51] drm/rockchip: " Daniel Vetter
@ 2020-03-02 22:26 ` Daniel Vetter
  2020-03-07  9:25   ` Sam Ravnborg
  2 siblings, 1 reply; 8+ messages in thread
From: Daniel Vetter @ 2020-03-02 22:26 UTC (permalink / raw)
  To: DRI Development
  Cc: Maxime Coquelin, Vincent Abriou, Benjamin Gaignard, Daniel Vetter,
	Intel Graphics Development, Philippe Cornu, Yannick Fertre,
	Laurent Pinchart, Thomas Zimmermann, Daniel Vetter, Sam Ravnborg,
	linux-stm32, linux-arm-kernel, Alexandre Torgue

It's right above the drm_dev_put().

This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().

Aside: Another driver with a bit much devm_kzalloc, which should
probably use drmm_kzalloc instead ...

v2: Explain why this cleanup is possible (Laurent).

v3: Use drmm_mode_config_init() for more clarity (Sam, Thomas)

Cc: Sam Ravnborg <sam@ravnborg•org>
Cc: Thomas Zimmermann <tzimmermann@suse•de>
Acked-by: Philippe Cornu <philippe.cornu@st•com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard•com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel•com>
Cc: Yannick Fertre <yannick.fertre@st•com>
Cc: Philippe Cornu <philippe.cornu@st•com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro•org>
Cc: Vincent Abriou <vincent.abriou@st•com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail•com>
Cc: Alexandre Torgue <alexandre.torgue@st•com>
Cc: linux-stm32@st-md-mailman•stormreply.com
Cc: linux-arm-kernel@lists•infradead.org
---
 drivers/gpu/drm/stm/drv.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
index ea9fcbdc68b3..0f85dd86cafa 100644
--- a/drivers/gpu/drm/stm/drv.c
+++ b/drivers/gpu/drm/stm/drv.c
@@ -88,7 +88,9 @@ static int drv_load(struct drm_device *ddev)
 
 	ddev->dev_private = (void *)ldev;
 
-	drm_mode_config_init(ddev);
+	ret = drmm_mode_config_init(ddev);
+	if (ret)
+		return ret;
 
 	/*
 	 * set max width and height as default value.
@@ -103,7 +105,7 @@ static int drv_load(struct drm_device *ddev)
 
 	ret = ltdc_load(ddev);
 	if (ret)
-		goto err;
+		return ret;
 
 	drm_mode_config_reset(ddev);
 	drm_kms_helper_poll_init(ddev);
@@ -111,9 +113,6 @@ static int drv_load(struct drm_device *ddev)
 	platform_set_drvdata(pdev, ddev);
 
 	return 0;
-err:
-	drm_mode_config_cleanup(ddev);
-	return ret;
 }
 
 static void drv_unload(struct drm_device *ddev)
@@ -122,7 +121,6 @@ static void drv_unload(struct drm_device *ddev)
 
 	drm_kms_helper_poll_fini(ddev);
 	ltdc_unload(ddev);
-	drm_mode_config_cleanup(ddev);
 }
 
 static __maybe_unused int drv_suspend(struct device *dev)
-- 
2.24.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
  2020-03-02 22:26 ` [PATCH 37/51] drm/rockchip: " Daniel Vetter
@ 2020-03-07  8:38   ` Sam Ravnborg
  0 siblings, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2020-03-07  8:38 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Francesco Lavra, Intel Graphics Development, Sandy Huang,
	DRI Development, linux-rockchip, Laurent Pinchart,
	Thomas Zimmermann, Daniel Vetter, linux-arm-kernel

On Mon, Mar 02, 2020 at 11:26:17PM +0100, Daniel Vetter wrote:
> It's (almost, there's some iommu stuff without significance) right
> above the drm_dev_put().
> 
> This is made possible by a preceeding patch which added a drmm_
> cleanup action to drm_mode_config_init(), hence all we need to do to
> ensure that drm_mode_config_cleanup() is run on final drm_device
> cleanup is check the new error code for _init().
> 
> Aside: Another driver with a bit much devm_kzalloc, which should
> probably use drmm_kzalloc instead ...
> 
> v2: Explain why this cleanup is possible (Laurent).
> 
> v3: Jump out at the right label (Francesco)
> 
> v4: Try again, kbuild caught that I didn't build test this properly
> ...
> 
> v5: Use drmm_mode_config_init() for more clarity (Sam, Thomas)
> 
> Cc: Sam Ravnborg <sam@ravnborg•org>
> Cc: Thomas Zimmermann <tzimmermann@suse•de>
> Cc: Francesco Lavra <francescolavra.fl@gmail•com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard•com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel•com>
> Cc: Sandy Huang <hjc@rock-chips•com>
> Cc: "Heiko Stübner" <heiko@sntech•de>
> Cc: linux-arm-kernel@lists•infradead.org
> Cc: linux-rockchip@lists•infradead.org

Acked-by: Sam Ravnborg <sam@ravnborg•org>

> ---
>  drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 14 +++++---------
>  1 file changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> index 20ecb1508a22..0f3eb392fe39 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> @@ -135,14 +135,16 @@ static int rockchip_drm_bind(struct device *dev)
>  	if (ret)
>  		goto err_free;
>  
> -	drm_mode_config_init(drm_dev);
> +	ret = drmm_mode_config_init(drm_dev);
> +	if (ret)
> +		goto err_iommu_cleanup;
>  
>  	rockchip_drm_mode_config_init(drm_dev);
>  
>  	/* Try to bind all sub drivers. */
>  	ret = component_bind_all(dev, drm_dev);
>  	if (ret)
> -		goto err_mode_config_cleanup;
> +		goto err_iommu_cleanup;
>  
>  	ret = drm_vblank_init(drm_dev, drm_dev->mode_config.num_crtc);
>  	if (ret)
> @@ -173,12 +175,9 @@ static int rockchip_drm_bind(struct device *dev)
>  	rockchip_drm_fbdev_fini(drm_dev);
>  err_unbind_all:
>  	component_unbind_all(dev, drm_dev);
> -err_mode_config_cleanup:
> -	drm_mode_config_cleanup(drm_dev);
> +err_iommu_cleanup:
>  	rockchip_iommu_cleanup(drm_dev);
>  err_free:
> -	drm_dev->dev_private = NULL;
> -	dev_set_drvdata(dev, NULL);
>  	drm_dev_put(drm_dev);
>  	return ret;
>  }
> @@ -194,11 +193,8 @@ static void rockchip_drm_unbind(struct device *dev)
>  
>  	drm_atomic_helper_shutdown(drm_dev);
>  	component_unbind_all(dev, drm_dev);
> -	drm_mode_config_cleanup(drm_dev);
>  	rockchip_iommu_cleanup(drm_dev);
>  
> -	drm_dev->dev_private = NULL;
> -	dev_set_drvdata(dev, NULL);
>  	drm_dev_put(drm_dev);
>  }
>  
> -- 
> 2.24.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists•freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 38/51] drm/stm: Drop explicit drm_mode_config_cleanup call
  2020-03-02 22:26 ` [PATCH 38/51] drm/stm: " Daniel Vetter
@ 2020-03-07  9:25   ` Sam Ravnborg
  0 siblings, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2020-03-07  9:25 UTC (permalink / raw)
  To: Daniel Vetter
  Cc: Thomas Zimmermann, Intel Graphics Development, Philippe Cornu,
	DRI Development, Yannick Fertre, Laurent Pinchart,
	Maxime Coquelin, Daniel Vetter, Vincent Abriou, linux-stm32,
	linux-arm-kernel, Alexandre Torgue

On Mon, Mar 02, 2020 at 11:26:18PM +0100, Daniel Vetter wrote:
> It's right above the drm_dev_put().
> 
> This is made possible by a preceeding patch which added a drmm_
> cleanup action to drm_mode_config_init(), hence all we need to do to
> ensure that drm_mode_config_cleanup() is run on final drm_device
> cleanup is check the new error code for _init().
> 
> Aside: Another driver with a bit much devm_kzalloc, which should
> probably use drmm_kzalloc instead ...
> 
> v2: Explain why this cleanup is possible (Laurent).
> 
> v3: Use drmm_mode_config_init() for more clarity (Sam, Thomas)
> 
> Cc: Sam Ravnborg <sam@ravnborg•org>
> Cc: Thomas Zimmermann <tzimmermann@suse•de>
> Acked-by: Philippe Cornu <philippe.cornu@st•com>
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard•com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel•com>
> Cc: Yannick Fertre <yannick.fertre@st•com>
> Cc: Philippe Cornu <philippe.cornu@st•com>
> Cc: Benjamin Gaignard <benjamin.gaignard@linaro•org>
> Cc: Vincent Abriou <vincent.abriou@st•com>
> Cc: Maxime Coquelin <mcoquelin.stm32@gmail•com>
> Cc: Alexandre Torgue <alexandre.torgue@st•com>
> Cc: linux-stm32@st-md-mailman•stormreply.com
> Cc: linux-arm-kernel@lists•infradead.org

Acked-by: Sam Ravnborg <sam@ravnborg•org>

> ---
>  drivers/gpu/drm/stm/drv.c | 10 ++++------
>  1 file changed, 4 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
> index ea9fcbdc68b3..0f85dd86cafa 100644
> --- a/drivers/gpu/drm/stm/drv.c
> +++ b/drivers/gpu/drm/stm/drv.c
> @@ -88,7 +88,9 @@ static int drv_load(struct drm_device *ddev)
>  
>  	ddev->dev_private = (void *)ldev;
>  
> -	drm_mode_config_init(ddev);
> +	ret = drmm_mode_config_init(ddev);
> +	if (ret)
> +		return ret;
>  
>  	/*
>  	 * set max width and height as default value.
> @@ -103,7 +105,7 @@ static int drv_load(struct drm_device *ddev)
>  
>  	ret = ltdc_load(ddev);
>  	if (ret)
> -		goto err;
> +		return ret;
>  
>  	drm_mode_config_reset(ddev);
>  	drm_kms_helper_poll_init(ddev);
> @@ -111,9 +113,6 @@ static int drv_load(struct drm_device *ddev)
>  	platform_set_drvdata(pdev, ddev);
>  
>  	return 0;
> -err:
> -	drm_mode_config_cleanup(ddev);
> -	return ret;
>  }
>  
>  static void drv_unload(struct drm_device *ddev)
> @@ -122,7 +121,6 @@ static void drv_unload(struct drm_device *ddev)
>  
>  	drm_kms_helper_poll_fini(ddev);
>  	ltdc_unload(ddev);
> -	drm_mode_config_cleanup(ddev);
>  }
>  
>  static __maybe_unused int drv_suspend(struct device *dev)
> -- 
> 2.24.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists•freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 38/51] drm/stm: Drop explicit drm_mode_config_cleanup call
       [not found] <20200323144950.3018436-1-daniel.vetter@ffwll.ch>
@ 2020-03-23 14:49 ` Daniel Vetter
  0 siblings, 0 replies; 8+ messages in thread
From: Daniel Vetter @ 2020-03-23 14:49 UTC (permalink / raw)
  To: DRI Development
  Cc: Maxime Coquelin, Vincent Abriou, Benjamin Gaignard, Daniel Vetter,
	Intel Graphics Development, Philippe Cornu, Yannick Fertre,
	Laurent Pinchart, Thomas Zimmermann, Daniel Vetter, Sam Ravnborg,
	linux-stm32, linux-arm-kernel, Alexandre Torgue

It's right above the drm_dev_put().

This is made possible by a preceeding patch which added a drmm_
cleanup action to drm_mode_config_init(), hence all we need to do to
ensure that drm_mode_config_cleanup() is run on final drm_device
cleanup is check the new error code for _init().

Aside: Another driver with a bit much devm_kzalloc, which should
probably use drmm_kzalloc instead ...

v2: Explain why this cleanup is possible (Laurent).

v3: Use drmm_mode_config_init() for more clarity (Sam, Thomas)

Cc: Sam Ravnborg <sam@ravnborg•org>
Cc: Thomas Zimmermann <tzimmermann@suse•de>
Acked-by: Sam Ravnborg <sam@ravnborg•org>
Acked-by: Philippe Cornu <philippe.cornu@st•com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard•com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel•com>
Cc: Yannick Fertre <yannick.fertre@st•com>
Cc: Philippe Cornu <philippe.cornu@st•com>
Cc: Benjamin Gaignard <benjamin.gaignard@linaro•org>
Cc: Vincent Abriou <vincent.abriou@st•com>
Cc: Maxime Coquelin <mcoquelin.stm32@gmail•com>
Cc: Alexandre Torgue <alexandre.torgue@st•com>
Cc: linux-stm32@st-md-mailman•stormreply.com
Cc: linux-arm-kernel@lists•infradead.org
---
 drivers/gpu/drm/stm/drv.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
index ea9fcbdc68b3..0f85dd86cafa 100644
--- a/drivers/gpu/drm/stm/drv.c
+++ b/drivers/gpu/drm/stm/drv.c
@@ -88,7 +88,9 @@ static int drv_load(struct drm_device *ddev)
 
 	ddev->dev_private = (void *)ldev;
 
-	drm_mode_config_init(ddev);
+	ret = drmm_mode_config_init(ddev);
+	if (ret)
+		return ret;
 
 	/*
 	 * set max width and height as default value.
@@ -103,7 +105,7 @@ static int drv_load(struct drm_device *ddev)
 
 	ret = ltdc_load(ddev);
 	if (ret)
-		goto err;
+		return ret;
 
 	drm_mode_config_reset(ddev);
 	drm_kms_helper_poll_init(ddev);
@@ -111,9 +113,6 @@ static int drv_load(struct drm_device *ddev)
 	platform_set_drvdata(pdev, ddev);
 
 	return 0;
-err:
-	drm_mode_config_cleanup(ddev);
-	return ret;
 }
 
 static void drv_unload(struct drm_device *ddev)
@@ -122,7 +121,6 @@ static void drv_unload(struct drm_device *ddev)
 
 	drm_kms_helper_poll_fini(ddev);
 	ltdc_unload(ddev);
-	drm_mode_config_cleanup(ddev);
 }
 
 static __maybe_unused int drv_suspend(struct device *dev)
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists•infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2020-03-23 14:51 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20200302222631.3861340-1-daniel.vetter@ffwll.ch>
2020-03-02 22:26 ` [PATCH 34/51] drm/meson: Drop explicit drm_mode_config_cleanup call Daniel Vetter
2020-03-02 22:26 ` [PATCH 37/51] drm/rockchip: " Daniel Vetter
2020-03-07  8:38   ` Sam Ravnborg
2020-03-02 22:26 ` [PATCH 38/51] drm/stm: " Daniel Vetter
2020-03-07  9:25   ` Sam Ravnborg
     [not found] <20200323144950.3018436-1-daniel.vetter@ffwll.ch>
2020-03-23 14:49 ` Daniel Vetter
     [not found] <20200227181522.2711142-1-daniel.vetter@ffwll.ch>
2020-02-27 18:15 ` Daniel Vetter
     [not found] <20200221210319.2245170-1-daniel.vetter@ffwll.ch>
2020-02-21 21:03 ` Daniel Vetter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox