* [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
[not found] <20200221210319.2245170-1-daniel.vetter@ffwll.ch>
@ 2020-02-21 21:03 ` Daniel Vetter
2020-02-24 19:13 ` Francesco Lavra
0 siblings, 1 reply; 13+ messages in thread
From: Daniel Vetter @ 2020-02-21 21:03 UTC (permalink / raw)
To: DRI Development
Cc: Heiko Stübner, Daniel Vetter, Intel Graphics Development,
Sandy Huang, linux-rockchip, Laurent Pinchart, Daniel Vetter,
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).
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 | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 20ecb1508a22..d0eba21eebc9 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -135,7 +135,9 @@ static int rockchip_drm_bind(struct device *dev)
if (ret)
goto err_free;
- drm_mode_config_init(drm_dev);
+ ret = drm_mode_config_init(drm_dev);
+ if (ret)
+ goto err_free;
rockchip_drm_mode_config_init(drm_dev);
@@ -174,11 +176,8 @@ static int rockchip_drm_bind(struct device *dev)
err_unbind_all:
component_unbind_all(dev, drm_dev);
err_mode_config_cleanup:
- drm_mode_config_cleanup(drm_dev);
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] 13+ messages in thread
* Re: [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
2020-02-21 21:03 ` Daniel Vetter
@ 2020-02-24 19:13 ` Francesco Lavra
2020-02-24 20:37 ` Daniel Vetter
0 siblings, 1 reply; 13+ messages in thread
From: Francesco Lavra @ 2020-02-24 19:13 UTC (permalink / raw)
To: Daniel Vetter
Cc: Heiko Stübner, Intel Graphics Development, Sandy Huang,
DRI Development, linux-rockchip, Laurent Pinchart, Daniel Vetter,
linux-arm-kernel
On Fri, Feb 21, 2020 at 10:04 PM Daniel Vetter <daniel.vetter@ffwll•ch> 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).
>
> 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 | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> index 20ecb1508a22..d0eba21eebc9 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> @@ -135,7 +135,9 @@ static int rockchip_drm_bind(struct device *dev)
> if (ret)
> goto err_free;
>
> - drm_mode_config_init(drm_dev);
> + ret = drm_mode_config_init(drm_dev);
> + if (ret)
> + goto err_free;
Shouldn't the goto label be err_mode_config_cleanup here? Otherwise
this error path misses the call to rockchip_iommu_cleanup().
>
> rockchip_drm_mode_config_init(drm_dev);
>
> @@ -174,11 +176,8 @@ static int rockchip_drm_bind(struct device *dev)
> err_unbind_all:
> component_unbind_all(dev, drm_dev);
> err_mode_config_cleanup:
> - drm_mode_config_cleanup(drm_dev);
> rockchip_iommu_cleanup(drm_dev);
> err_free:
> - drm_dev->dev_private = NULL;
> - dev_set_drvdata(dev, NULL);
> drm_dev_put(drm_dev);
> return ret;
> }
On Fri, Feb 21, 2020 at 10:04 PM Daniel Vetter <daniel.vetter@ffwll•ch> 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).
>
> 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 | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> index 20ecb1508a22..d0eba21eebc9 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> @@ -135,7 +135,9 @@ static int rockchip_drm_bind(struct device *dev)
> if (ret)
> goto err_free;
>
> - drm_mode_config_init(drm_dev);
> + ret = drm_mode_config_init(drm_dev);
> + if (ret)
> + goto err_free;
>
> rockchip_drm_mode_config_init(drm_dev);
>
> @@ -174,11 +176,8 @@ static int rockchip_drm_bind(struct device *dev)
> err_unbind_all:
> component_unbind_all(dev, drm_dev);
> err_mode_config_cleanup:
> - drm_mode_config_cleanup(drm_dev);
> 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-rockchip mailing list
> Linux-rockchip@lists•infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip
_______________________________________________
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] 13+ messages in thread
* Re: [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
2020-02-24 19:13 ` Francesco Lavra
@ 2020-02-24 20:37 ` Daniel Vetter
0 siblings, 0 replies; 13+ messages in thread
From: Daniel Vetter @ 2020-02-24 20:37 UTC (permalink / raw)
To: Francesco Lavra
Cc: Heiko Stübner, Intel Graphics Development, Sandy Huang,
DRI Development, open list:ARM/Rockchip SoC..., Laurent Pinchart,
Daniel Vetter, Linux ARM
On Mon, Feb 24, 2020 at 8:13 PM Francesco Lavra
<francescolavra.fl@gmail•com> wrote:
>
> On Fri, Feb 21, 2020 at 10:04 PM Daniel Vetter <daniel.vetter@ffwll•ch> 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).
> >
> > 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 | 10 +++-------
> > 1 file changed, 3 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> > index 20ecb1508a22..d0eba21eebc9 100644
> > --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> > @@ -135,7 +135,9 @@ static int rockchip_drm_bind(struct device *dev)
> > if (ret)
> > goto err_free;
> >
> > - drm_mode_config_init(drm_dev);
> > + ret = drm_mode_config_init(drm_dev);
> > + if (ret)
> > + goto err_free;
>
> Shouldn't the goto label be err_mode_config_cleanup here? Otherwise
> this error path misses the call to rockchip_iommu_cleanup().
Indeed. I'll also rename the label to have a more meaningful name while at it.
-Daniel
>
> >
> > rockchip_drm_mode_config_init(drm_dev);
> >
> > @@ -174,11 +176,8 @@ static int rockchip_drm_bind(struct device *dev)
> > err_unbind_all:
> > component_unbind_all(dev, drm_dev);
> > err_mode_config_cleanup:
> > - drm_mode_config_cleanup(drm_dev);
> > rockchip_iommu_cleanup(drm_dev);
> > err_free:
> > - drm_dev->dev_private = NULL;
> > - dev_set_drvdata(dev, NULL);
> > drm_dev_put(drm_dev);
> > return ret;
> > }
>
> On Fri, Feb 21, 2020 at 10:04 PM Daniel Vetter <daniel.vetter@ffwll•ch> 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).
> >
> > 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 | 10 +++-------
> > 1 file changed, 3 insertions(+), 7 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> > index 20ecb1508a22..d0eba21eebc9 100644
> > --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
> > @@ -135,7 +135,9 @@ static int rockchip_drm_bind(struct device *dev)
> > if (ret)
> > goto err_free;
> >
> > - drm_mode_config_init(drm_dev);
> > + ret = drm_mode_config_init(drm_dev);
> > + if (ret)
> > + goto err_free;
> >
> > rockchip_drm_mode_config_init(drm_dev);
> >
> > @@ -174,11 +176,8 @@ static int rockchip_drm_bind(struct device *dev)
> > err_unbind_all:
> > component_unbind_all(dev, drm_dev);
> > err_mode_config_cleanup:
> > - drm_mode_config_cleanup(drm_dev);
> > 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-rockchip mailing list
> > Linux-rockchip@lists•infradead.org
> > http://lists.infradead.org/mailman/listinfo/linux-rockchip
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
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] 13+ messages in thread
* [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
[not found] <20200227181522.2711142-1-daniel.vetter@ffwll.ch>
@ 2020-02-27 18:15 ` Daniel Vetter
2020-02-28 21:19 ` kbuild test robot
2020-02-29 1:53 ` kbuild test robot
0 siblings, 2 replies; 13+ messages in thread
From: Daniel Vetter @ 2020-02-27 18:15 UTC (permalink / raw)
To: DRI Development
Cc: Heiko Stübner, Francesco Lavra, Daniel Vetter,
Intel Graphics Development, m.felsch, Sandy Huang, linux-rockchip,
Laurent Pinchart, Daniel Vetter, linux-arm-kernel, l.stach
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)
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 | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 20ecb1508a22..9b2502f92018 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -135,7 +135,9 @@ static int rockchip_drm_bind(struct device *dev)
if (ret)
goto err_free;
- drm_mode_config_init(drm_dev);
+ ret = drm_mode_config_init(drm_dev);
+ if (ret)
+ goto err_iommu_cleanup;
rockchip_drm_mode_config_init(drm_dev);
@@ -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] 13+ messages in thread
* Re: [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
2020-02-27 18:15 ` Daniel Vetter
@ 2020-02-28 21:19 ` kbuild test robot
2020-02-28 23:34 ` Daniel Vetter
2020-02-29 1:53 ` kbuild test robot
1 sibling, 1 reply; 13+ messages in thread
From: kbuild test robot @ 2020-02-28 21:19 UTC (permalink / raw)
To: Daniel Vetter
Cc: kbuild-all, Francesco Lavra, Daniel Vetter,
Intel Graphics Development, m.felsch, DRI Development,
Sandy Huang, linux-rockchip, Laurent Pinchart, Daniel Vetter,
linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 7186 bytes --]
Hi Daniel,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on next-20200228]
[cannot apply to drm-intel/for-linux-next linus/master pinchartl-media/drm/du/next v5.6-rc3]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Daniel-Vetter/drm-managed-resources-v3/20200229-005817
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: arm64-defconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel•com>
All errors (new ones prefixed by >>):
drivers/gpu/drm/rockchip/rockchip_drm_drv.c: In function 'rockchip_drm_bind':
>> drivers/gpu/drm/rockchip/rockchip_drm_drv.c:147:3: error: label 'err_mode_config_cleanup' used but not defined
goto err_mode_config_cleanup;
^~~~
vim +/err_mode_config_cleanup +147 drivers/gpu/drm/rockchip/rockchip_drm_drv.c
2048e3286f347db Mark Yao 2014-08-22 110
f706974a69b6e2b Tomeu Vizoso 2016-06-10 111 static int rockchip_drm_bind(struct device *dev)
2048e3286f347db Mark Yao 2014-08-22 112 {
f706974a69b6e2b Tomeu Vizoso 2016-06-10 113 struct drm_device *drm_dev;
2048e3286f347db Mark Yao 2014-08-22 114 struct rockchip_drm_private *private;
2048e3286f347db Mark Yao 2014-08-22 115 int ret;
2048e3286f347db Mark Yao 2014-08-22 116
f706974a69b6e2b Tomeu Vizoso 2016-06-10 117 drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev);
0f2886057be322d Tom Gundersen 2016-09-21 118 if (IS_ERR(drm_dev))
0f2886057be322d Tom Gundersen 2016-09-21 119 return PTR_ERR(drm_dev);
2048e3286f347db Mark Yao 2014-08-22 120
f706974a69b6e2b Tomeu Vizoso 2016-06-10 121 dev_set_drvdata(dev, drm_dev);
f706974a69b6e2b Tomeu Vizoso 2016-06-10 122
f706974a69b6e2b Tomeu Vizoso 2016-06-10 123 private = devm_kzalloc(drm_dev->dev, sizeof(*private), GFP_KERNEL);
f706974a69b6e2b Tomeu Vizoso 2016-06-10 124 if (!private) {
f706974a69b6e2b Tomeu Vizoso 2016-06-10 125 ret = -ENOMEM;
9127f99c4801f32 Tomasz Figa 2016-06-21 126 goto err_free;
f706974a69b6e2b Tomeu Vizoso 2016-06-10 127 }
f706974a69b6e2b Tomeu Vizoso 2016-06-10 128
2048e3286f347db Mark Yao 2014-08-22 129 drm_dev->dev_private = private;
2048e3286f347db Mark Yao 2014-08-22 130
5182c1a556d7ff7 Yakir Yang 2016-07-24 131 INIT_LIST_HEAD(&private->psr_list);
60beeccc72cabef Sean Paul 2018-03-05 132 mutex_init(&private->psr_list_lock);
5182c1a556d7ff7 Yakir Yang 2016-07-24 133
ccea91998c8f140 Jeffy Chen 2017-04-06 134 ret = rockchip_drm_init_iommu(drm_dev);
ccea91998c8f140 Jeffy Chen 2017-04-06 135 if (ret)
ccea91998c8f140 Jeffy Chen 2017-04-06 136 goto err_free;
ccea91998c8f140 Jeffy Chen 2017-04-06 137
7db42e97bb41bd5 Daniel Vetter 2020-02-27 138 ret = drm_mode_config_init(drm_dev);
7db42e97bb41bd5 Daniel Vetter 2020-02-27 139 if (ret)
7db42e97bb41bd5 Daniel Vetter 2020-02-27 140 goto err_iommu_cleanup;
2048e3286f347db Mark Yao 2014-08-22 141
2048e3286f347db Mark Yao 2014-08-22 142 rockchip_drm_mode_config_init(drm_dev);
2048e3286f347db Mark Yao 2014-08-22 143
2048e3286f347db Mark Yao 2014-08-22 144 /* Try to bind all sub drivers. */
2048e3286f347db Mark Yao 2014-08-22 145 ret = component_bind_all(dev, drm_dev);
2048e3286f347db Mark Yao 2014-08-22 146 if (ret)
ccea91998c8f140 Jeffy Chen 2017-04-06 @147 goto err_mode_config_cleanup;
2048e3286f347db Mark Yao 2014-08-22 148
ccea91998c8f140 Jeffy Chen 2017-04-06 149 ret = drm_vblank_init(drm_dev, drm_dev->mode_config.num_crtc);
ccea91998c8f140 Jeffy Chen 2017-04-06 150 if (ret)
ccea91998c8f140 Jeffy Chen 2017-04-06 151 goto err_unbind_all;
ccea91998c8f140 Jeffy Chen 2017-04-06 152
ccea91998c8f140 Jeffy Chen 2017-04-06 153 drm_mode_config_reset(drm_dev);
2048e3286f347db Mark Yao 2014-08-22 154
2048e3286f347db Mark Yao 2014-08-22 155 /*
2048e3286f347db Mark Yao 2014-08-22 156 * enable drm irq mode.
2048e3286f347db Mark Yao 2014-08-22 157 * - with irq_enabled = true, we can use the vblank feature.
2048e3286f347db Mark Yao 2014-08-22 158 */
2048e3286f347db Mark Yao 2014-08-22 159 drm_dev->irq_enabled = true;
2048e3286f347db Mark Yao 2014-08-22 160
2048e3286f347db Mark Yao 2014-08-22 161 ret = rockchip_drm_fbdev_init(drm_dev);
2048e3286f347db Mark Yao 2014-08-22 162 if (ret)
8415ab565da966b Mark Yao 2017-08-01 163 goto err_unbind_all;
8415ab565da966b Mark Yao 2017-08-01 164
8415ab565da966b Mark Yao 2017-08-01 165 /* init kms poll for handling hpd */
8415ab565da966b Mark Yao 2017-08-01 166 drm_kms_helper_poll_init(drm_dev);
2048e3286f347db Mark Yao 2014-08-22 167
9127f99c4801f32 Tomasz Figa 2016-06-21 168 ret = drm_dev_register(drm_dev, 0);
9127f99c4801f32 Tomasz Figa 2016-06-21 169 if (ret)
8415ab565da966b Mark Yao 2017-08-01 170 goto err_kms_helper_poll_fini;
9127f99c4801f32 Tomasz Figa 2016-06-21 171
2048e3286f347db Mark Yao 2014-08-22 172 return 0;
2048e3286f347db Mark Yao 2014-08-22 173 err_kms_helper_poll_fini:
2048e3286f347db Mark Yao 2014-08-22 174 drm_kms_helper_poll_fini(drm_dev);
8415ab565da966b Mark Yao 2017-08-01 175 rockchip_drm_fbdev_fini(drm_dev);
ccea91998c8f140 Jeffy Chen 2017-04-06 176 err_unbind_all:
2048e3286f347db Mark Yao 2014-08-22 177 component_unbind_all(dev, drm_dev);
7db42e97bb41bd5 Daniel Vetter 2020-02-27 178 err_iommu_cleanup:
ccea91998c8f140 Jeffy Chen 2017-04-06 179 rockchip_iommu_cleanup(drm_dev);
f706974a69b6e2b Tomeu Vizoso 2016-06-10 180 err_free:
574e0fbfc95e7fc Thomas Zimmermann 2018-07-17 181 drm_dev_put(drm_dev);
2048e3286f347db Mark Yao 2014-08-22 182 return ret;
2048e3286f347db Mark Yao 2014-08-22 183 }
2048e3286f347db Mark Yao 2014-08-22 184
:::::: The code at line 147 was first introduced by commit
:::::: ccea91998c8f140bc3e324bbb3c3fb7148e72d31 drm/rockchip: Reorder drm bind/unbind sequence
:::::: TO: Jeffy Chen <jeffy.chen@rock-chips•com>
:::::: CC: Sean Paul <seanpaul@chromium•org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 47162 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
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] 13+ messages in thread
* Re: [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
2020-02-28 21:19 ` kbuild test robot
@ 2020-02-28 23:34 ` Daniel Vetter
0 siblings, 0 replies; 13+ messages in thread
From: Daniel Vetter @ 2020-02-28 23:34 UTC (permalink / raw)
To: kbuild test robot
Cc: kbuild-all, Francesco Lavra, Intel Graphics Development,
Marco Felsch, DRI Development, Sandy Huang,
open list:ARM/Rockchip SoC..., Laurent Pinchart, Daniel Vetter,
Linux ARM
Drat I butchered this. Will fix for next round and actually
compile-test arm again :-/
-Daniel
On Fri, Feb 28, 2020 at 10:19 PM kbuild test robot <lkp@intel•com> wrote:
>
> Hi Daniel,
>
> I love your patch! Yet something to improve:
>
> [auto build test ERROR on drm-tip/drm-tip]
> [also build test ERROR on next-20200228]
> [cannot apply to drm-intel/for-linux-next linus/master pinchartl-media/drm/du/next v5.6-rc3]
> [if your patch is applied to the wrong git tree, please drop us a note to help
> improve the system. BTW, we also suggest to use '--base' option to specify the
> base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
>
> url: https://github.com/0day-ci/linux/commits/Daniel-Vetter/drm-managed-resources-v3/20200229-005817
> base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
> config: arm64-defconfig (attached as .config)
> compiler: aarch64-linux-gcc (GCC) 7.5.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # save the attached .config to linux build tree
> GCC_VERSION=7.5.0 make.cross ARCH=arm64
>
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot <lkp@intel•com>
>
> All errors (new ones prefixed by >>):
>
> drivers/gpu/drm/rockchip/rockchip_drm_drv.c: In function 'rockchip_drm_bind':
> >> drivers/gpu/drm/rockchip/rockchip_drm_drv.c:147:3: error: label 'err_mode_config_cleanup' used but not defined
> goto err_mode_config_cleanup;
> ^~~~
>
> vim +/err_mode_config_cleanup +147 drivers/gpu/drm/rockchip/rockchip_drm_drv.c
>
> 2048e3286f347db Mark Yao 2014-08-22 110
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 111 static int rockchip_drm_bind(struct device *dev)
> 2048e3286f347db Mark Yao 2014-08-22 112 {
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 113 struct drm_device *drm_dev;
> 2048e3286f347db Mark Yao 2014-08-22 114 struct rockchip_drm_private *private;
> 2048e3286f347db Mark Yao 2014-08-22 115 int ret;
> 2048e3286f347db Mark Yao 2014-08-22 116
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 117 drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev);
> 0f2886057be322d Tom Gundersen 2016-09-21 118 if (IS_ERR(drm_dev))
> 0f2886057be322d Tom Gundersen 2016-09-21 119 return PTR_ERR(drm_dev);
> 2048e3286f347db Mark Yao 2014-08-22 120
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 121 dev_set_drvdata(dev, drm_dev);
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 122
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 123 private = devm_kzalloc(drm_dev->dev, sizeof(*private), GFP_KERNEL);
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 124 if (!private) {
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 125 ret = -ENOMEM;
> 9127f99c4801f32 Tomasz Figa 2016-06-21 126 goto err_free;
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 127 }
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 128
> 2048e3286f347db Mark Yao 2014-08-22 129 drm_dev->dev_private = private;
> 2048e3286f347db Mark Yao 2014-08-22 130
> 5182c1a556d7ff7 Yakir Yang 2016-07-24 131 INIT_LIST_HEAD(&private->psr_list);
> 60beeccc72cabef Sean Paul 2018-03-05 132 mutex_init(&private->psr_list_lock);
> 5182c1a556d7ff7 Yakir Yang 2016-07-24 133
> ccea91998c8f140 Jeffy Chen 2017-04-06 134 ret = rockchip_drm_init_iommu(drm_dev);
> ccea91998c8f140 Jeffy Chen 2017-04-06 135 if (ret)
> ccea91998c8f140 Jeffy Chen 2017-04-06 136 goto err_free;
> ccea91998c8f140 Jeffy Chen 2017-04-06 137
> 7db42e97bb41bd5 Daniel Vetter 2020-02-27 138 ret = drm_mode_config_init(drm_dev);
> 7db42e97bb41bd5 Daniel Vetter 2020-02-27 139 if (ret)
> 7db42e97bb41bd5 Daniel Vetter 2020-02-27 140 goto err_iommu_cleanup;
> 2048e3286f347db Mark Yao 2014-08-22 141
> 2048e3286f347db Mark Yao 2014-08-22 142 rockchip_drm_mode_config_init(drm_dev);
> 2048e3286f347db Mark Yao 2014-08-22 143
> 2048e3286f347db Mark Yao 2014-08-22 144 /* Try to bind all sub drivers. */
> 2048e3286f347db Mark Yao 2014-08-22 145 ret = component_bind_all(dev, drm_dev);
> 2048e3286f347db Mark Yao 2014-08-22 146 if (ret)
> ccea91998c8f140 Jeffy Chen 2017-04-06 @147 goto err_mode_config_cleanup;
> 2048e3286f347db Mark Yao 2014-08-22 148
> ccea91998c8f140 Jeffy Chen 2017-04-06 149 ret = drm_vblank_init(drm_dev, drm_dev->mode_config.num_crtc);
> ccea91998c8f140 Jeffy Chen 2017-04-06 150 if (ret)
> ccea91998c8f140 Jeffy Chen 2017-04-06 151 goto err_unbind_all;
> ccea91998c8f140 Jeffy Chen 2017-04-06 152
> ccea91998c8f140 Jeffy Chen 2017-04-06 153 drm_mode_config_reset(drm_dev);
> 2048e3286f347db Mark Yao 2014-08-22 154
> 2048e3286f347db Mark Yao 2014-08-22 155 /*
> 2048e3286f347db Mark Yao 2014-08-22 156 * enable drm irq mode.
> 2048e3286f347db Mark Yao 2014-08-22 157 * - with irq_enabled = true, we can use the vblank feature.
> 2048e3286f347db Mark Yao 2014-08-22 158 */
> 2048e3286f347db Mark Yao 2014-08-22 159 drm_dev->irq_enabled = true;
> 2048e3286f347db Mark Yao 2014-08-22 160
> 2048e3286f347db Mark Yao 2014-08-22 161 ret = rockchip_drm_fbdev_init(drm_dev);
> 2048e3286f347db Mark Yao 2014-08-22 162 if (ret)
> 8415ab565da966b Mark Yao 2017-08-01 163 goto err_unbind_all;
> 8415ab565da966b Mark Yao 2017-08-01 164
> 8415ab565da966b Mark Yao 2017-08-01 165 /* init kms poll for handling hpd */
> 8415ab565da966b Mark Yao 2017-08-01 166 drm_kms_helper_poll_init(drm_dev);
> 2048e3286f347db Mark Yao 2014-08-22 167
> 9127f99c4801f32 Tomasz Figa 2016-06-21 168 ret = drm_dev_register(drm_dev, 0);
> 9127f99c4801f32 Tomasz Figa 2016-06-21 169 if (ret)
> 8415ab565da966b Mark Yao 2017-08-01 170 goto err_kms_helper_poll_fini;
> 9127f99c4801f32 Tomasz Figa 2016-06-21 171
> 2048e3286f347db Mark Yao 2014-08-22 172 return 0;
> 2048e3286f347db Mark Yao 2014-08-22 173 err_kms_helper_poll_fini:
> 2048e3286f347db Mark Yao 2014-08-22 174 drm_kms_helper_poll_fini(drm_dev);
> 8415ab565da966b Mark Yao 2017-08-01 175 rockchip_drm_fbdev_fini(drm_dev);
> ccea91998c8f140 Jeffy Chen 2017-04-06 176 err_unbind_all:
> 2048e3286f347db Mark Yao 2014-08-22 177 component_unbind_all(dev, drm_dev);
> 7db42e97bb41bd5 Daniel Vetter 2020-02-27 178 err_iommu_cleanup:
> ccea91998c8f140 Jeffy Chen 2017-04-06 179 rockchip_iommu_cleanup(drm_dev);
> f706974a69b6e2b Tomeu Vizoso 2016-06-10 180 err_free:
> 574e0fbfc95e7fc Thomas Zimmermann 2018-07-17 181 drm_dev_put(drm_dev);
> 2048e3286f347db Mark Yao 2014-08-22 182 return ret;
> 2048e3286f347db Mark Yao 2014-08-22 183 }
> 2048e3286f347db Mark Yao 2014-08-22 184
>
> :::::: The code at line 147 was first introduced by commit
> :::::: ccea91998c8f140bc3e324bbb3c3fb7148e72d31 drm/rockchip: Reorder drm bind/unbind sequence
>
> :::::: TO: Jeffy Chen <jeffy.chen@rock-chips•com>
> :::::: CC: Sean Paul <seanpaul@chromium•org>
>
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
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] 13+ messages in thread
* Re: [PATCH 37/51] drm/rockchip: Drop explicit drm_mode_config_cleanup call
2020-02-27 18:15 ` Daniel Vetter
2020-02-28 21:19 ` kbuild test robot
@ 2020-02-29 1:53 ` kbuild test robot
1 sibling, 0 replies; 13+ messages in thread
From: kbuild test robot @ 2020-02-29 1:53 UTC (permalink / raw)
To: Daniel Vetter
Cc: kbuild-all, linux-rockchip, Francesco Lavra, Daniel Vetter,
Intel Graphics Development, m.felsch, DRI Development,
Sandy Huang, clang-built-linux, Laurent Pinchart, Daniel Vetter,
linux-arm-kernel
[-- Attachment #1: Type: text/plain, Size: 6958 bytes --]
Hi Daniel,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on next-20200228]
[cannot apply to drm-intel/for-linux-next linus/master pinchartl-media/drm/du/next v5.6-rc3]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Daniel-Vetter/drm-managed-resources-v3/20200229-005817
base: git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: arm64-defconfig (attached as .config)
compiler: clang version 11.0.0 (git://gitmirror/llvm_project 949134e2fefd34a38ed71de90dffe2300e2e1139)
reproduce:
# FIXME the reproduce steps for clang is not ready yet
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel•com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/rockchip/rockchip_drm_drv.c:147:8: error: use of undeclared label 'err_mode_config_cleanup'
goto err_mode_config_cleanup;
^
1 error generated.
vim +/err_mode_config_cleanup +147 drivers/gpu/drm/rockchip/rockchip_drm_drv.c
2048e3286f347d Mark Yao 2014-08-22 110
f706974a69b6e2 Tomeu Vizoso 2016-06-10 111 static int rockchip_drm_bind(struct device *dev)
2048e3286f347d Mark Yao 2014-08-22 112 {
f706974a69b6e2 Tomeu Vizoso 2016-06-10 113 struct drm_device *drm_dev;
2048e3286f347d Mark Yao 2014-08-22 114 struct rockchip_drm_private *private;
2048e3286f347d Mark Yao 2014-08-22 115 int ret;
2048e3286f347d Mark Yao 2014-08-22 116
f706974a69b6e2 Tomeu Vizoso 2016-06-10 117 drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev);
0f2886057be322 Tom Gundersen 2016-09-21 118 if (IS_ERR(drm_dev))
0f2886057be322 Tom Gundersen 2016-09-21 119 return PTR_ERR(drm_dev);
2048e3286f347d Mark Yao 2014-08-22 120
f706974a69b6e2 Tomeu Vizoso 2016-06-10 121 dev_set_drvdata(dev, drm_dev);
f706974a69b6e2 Tomeu Vizoso 2016-06-10 122
f706974a69b6e2 Tomeu Vizoso 2016-06-10 123 private = devm_kzalloc(drm_dev->dev, sizeof(*private), GFP_KERNEL);
f706974a69b6e2 Tomeu Vizoso 2016-06-10 124 if (!private) {
f706974a69b6e2 Tomeu Vizoso 2016-06-10 125 ret = -ENOMEM;
9127f99c4801f3 Tomasz Figa 2016-06-21 126 goto err_free;
f706974a69b6e2 Tomeu Vizoso 2016-06-10 127 }
f706974a69b6e2 Tomeu Vizoso 2016-06-10 128
2048e3286f347d Mark Yao 2014-08-22 129 drm_dev->dev_private = private;
2048e3286f347d Mark Yao 2014-08-22 130
5182c1a556d7ff Yakir Yang 2016-07-24 131 INIT_LIST_HEAD(&private->psr_list);
60beeccc72cabe Sean Paul 2018-03-05 132 mutex_init(&private->psr_list_lock);
5182c1a556d7ff Yakir Yang 2016-07-24 133
ccea91998c8f14 Jeffy Chen 2017-04-06 134 ret = rockchip_drm_init_iommu(drm_dev);
ccea91998c8f14 Jeffy Chen 2017-04-06 135 if (ret)
ccea91998c8f14 Jeffy Chen 2017-04-06 136 goto err_free;
ccea91998c8f14 Jeffy Chen 2017-04-06 137
7db42e97bb41bd Daniel Vetter 2020-02-27 138 ret = drm_mode_config_init(drm_dev);
7db42e97bb41bd Daniel Vetter 2020-02-27 139 if (ret)
7db42e97bb41bd Daniel Vetter 2020-02-27 140 goto err_iommu_cleanup;
2048e3286f347d Mark Yao 2014-08-22 141
2048e3286f347d Mark Yao 2014-08-22 142 rockchip_drm_mode_config_init(drm_dev);
2048e3286f347d Mark Yao 2014-08-22 143
2048e3286f347d Mark Yao 2014-08-22 144 /* Try to bind all sub drivers. */
2048e3286f347d Mark Yao 2014-08-22 145 ret = component_bind_all(dev, drm_dev);
2048e3286f347d Mark Yao 2014-08-22 146 if (ret)
ccea91998c8f14 Jeffy Chen 2017-04-06 @147 goto err_mode_config_cleanup;
2048e3286f347d Mark Yao 2014-08-22 148
ccea91998c8f14 Jeffy Chen 2017-04-06 149 ret = drm_vblank_init(drm_dev, drm_dev->mode_config.num_crtc);
ccea91998c8f14 Jeffy Chen 2017-04-06 150 if (ret)
ccea91998c8f14 Jeffy Chen 2017-04-06 151 goto err_unbind_all;
ccea91998c8f14 Jeffy Chen 2017-04-06 152
ccea91998c8f14 Jeffy Chen 2017-04-06 153 drm_mode_config_reset(drm_dev);
2048e3286f347d Mark Yao 2014-08-22 154
2048e3286f347d Mark Yao 2014-08-22 155 /*
2048e3286f347d Mark Yao 2014-08-22 156 * enable drm irq mode.
2048e3286f347d Mark Yao 2014-08-22 157 * - with irq_enabled = true, we can use the vblank feature.
2048e3286f347d Mark Yao 2014-08-22 158 */
2048e3286f347d Mark Yao 2014-08-22 159 drm_dev->irq_enabled = true;
2048e3286f347d Mark Yao 2014-08-22 160
2048e3286f347d Mark Yao 2014-08-22 161 ret = rockchip_drm_fbdev_init(drm_dev);
2048e3286f347d Mark Yao 2014-08-22 162 if (ret)
8415ab565da966 Mark Yao 2017-08-01 163 goto err_unbind_all;
8415ab565da966 Mark Yao 2017-08-01 164
8415ab565da966 Mark Yao 2017-08-01 165 /* init kms poll for handling hpd */
8415ab565da966 Mark Yao 2017-08-01 166 drm_kms_helper_poll_init(drm_dev);
2048e3286f347d Mark Yao 2014-08-22 167
9127f99c4801f3 Tomasz Figa 2016-06-21 168 ret = drm_dev_register(drm_dev, 0);
9127f99c4801f3 Tomasz Figa 2016-06-21 169 if (ret)
8415ab565da966 Mark Yao 2017-08-01 170 goto err_kms_helper_poll_fini;
9127f99c4801f3 Tomasz Figa 2016-06-21 171
2048e3286f347d Mark Yao 2014-08-22 172 return 0;
2048e3286f347d Mark Yao 2014-08-22 173 err_kms_helper_poll_fini:
2048e3286f347d Mark Yao 2014-08-22 174 drm_kms_helper_poll_fini(drm_dev);
8415ab565da966 Mark Yao 2017-08-01 175 rockchip_drm_fbdev_fini(drm_dev);
ccea91998c8f14 Jeffy Chen 2017-04-06 176 err_unbind_all:
2048e3286f347d Mark Yao 2014-08-22 177 component_unbind_all(dev, drm_dev);
7db42e97bb41bd Daniel Vetter 2020-02-27 178 err_iommu_cleanup:
ccea91998c8f14 Jeffy Chen 2017-04-06 179 rockchip_iommu_cleanup(drm_dev);
f706974a69b6e2 Tomeu Vizoso 2016-06-10 180 err_free:
574e0fbfc95e7f Thomas Zimmermann 2018-07-17 181 drm_dev_put(drm_dev);
2048e3286f347d Mark Yao 2014-08-22 182 return ret;
2048e3286f347d Mark Yao 2014-08-22 183 }
2048e3286f347d Mark Yao 2014-08-22 184
:::::: The code at line 147 was first introduced by commit
:::::: ccea91998c8f140bc3e324bbb3c3fb7148e72d31 drm/rockchip: Reorder drm bind/unbind sequence
:::::: TO: Jeffy Chen <jeffy.chen@rock-chips•com>
:::::: CC: Sean Paul <seanpaul@chromium•org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 47168 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
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] 13+ 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; 13+ 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] 13+ 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; 13+ 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] 13+ 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; 13+ 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] 13+ 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; 13+ 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] 13+ 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; 13+ 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] 13+ messages in thread
* [PATCH 37/51] drm/rockchip: 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; 13+ messages in thread
From: Daniel Vetter @ 2020-03-23 14:49 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)
Acked-by: Sam Ravnborg <sam@ravnborg•org>
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.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] 13+ messages in thread
end of thread, other threads:[~2020-03-23 14:51 UTC | newest]
Thread overview: 13+ 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 ` [PATCH 37/51] drm/rockchip: " Daniel Vetter
[not found] <20200227181522.2711142-1-daniel.vetter@ffwll.ch>
2020-02-27 18:15 ` Daniel Vetter
2020-02-28 21:19 ` kbuild test robot
2020-02-28 23:34 ` Daniel Vetter
2020-02-29 1:53 ` kbuild test robot
[not found] <20200221210319.2245170-1-daniel.vetter@ffwll.ch>
2020-02-21 21:03 ` Daniel Vetter
2020-02-24 19:13 ` Francesco Lavra
2020-02-24 20:37 ` Daniel Vetter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox