drivers/gpu/drm/sun4i/sun4i_tcon.c | 2 ++ 1 file changed, 2 insertions(+)
of_find_device_by_node() takes a reference to the TCON TOP device
which the error paths release, but the success path returns without
doing so. Drop the reference before returning success.
Fixes: 0305189afb32 ("drm/sun4i: tcon: Add support for R40 TCON")
Cc: stable@vger.kernel.org
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
---
drivers/gpu/drm/sun4i/sun4i_tcon.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/sun4i/sun4i_tcon.c b/drivers/gpu/drm/sun4i/sun4i_tcon.c
index 960e83c8291d..07350361fc4b 100644
--- a/drivers/gpu/drm/sun4i/sun4i_tcon.c
+++ b/drivers/gpu/drm/sun4i/sun4i_tcon.c
@@ -1444,6 +1444,8 @@ static int sun8i_r40_tcon_tv_set_mux(struct sun4i_tcon *tcon,
}
}
+ put_device(&pdev->dev);
+
return 0;
}
--
2.34.1
Hi Wentao,
kernel test robot noticed the following build errors:
[auto build test ERROR on sunxi/sunxi/for-next]
[also build test ERROR on daeinki-drm-exynos/exynos-drm-next drm/drm-next drm-i915/for-linux-next drm-i915/for-linux-next-fixes drm-misc/drm-misc-next drm-tip/drm-tip linus/master v7.3-rc3 next-20260916]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Wentao-Liang/drm-sun4i-Fix-pdev-reference-leak-in-sun8i_r40_tcon_tv_set_mux/20260916-182412
base: https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi/for-next
patch link: https://lore.kernel.org/r/20260916182412.2091681-1-vulab%40iscas.ac.cn
patch subject: [PATCH] drm/sun4i: Fix pdev reference leak in sun8i_r40_tcon_tv_set_mux()
config: arm-defconfig (https://download.01.org/0day-ci/archive/20260918/202609180443.vTkwAZL6-lkp@intel.com/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 7252edd9aa82ef1c570ff6694ef7f4763a8a5d2f)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260918/202609180443.vTkwAZL6-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609180443.vTkwAZL6-lkp@intel.com/
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/sun4i/sun4i_tcon.c:811:14: error: use of undeclared identifier 'pdev'; did you mean 'dev'?
811 | put_device(&pdev->dev);
| ^~~~
| dev
drivers/gpu/drm/sun4i/sun4i_tcon.c:786:50: note: 'dev' declared here
786 | static int sun4i_tcon_init_clocks(struct device *dev,
| ^
>> drivers/gpu/drm/sun4i/sun4i_tcon.c:811:20: error: no member named 'dev' in 'struct device'
811 | put_device(&pdev->dev);
| ~~~~ ^
2 errors generated.
vim +811 drivers/gpu/drm/sun4i/sun4i_tcon.c
785
786 static int sun4i_tcon_init_clocks(struct device *dev,
787 struct sun4i_tcon *tcon)
788 {
789 tcon->clk = devm_clk_get_enabled(dev, "ahb");
790 if (IS_ERR(tcon->clk)) {
791 dev_err(dev, "Couldn't get the TCON bus clock\n");
792 return PTR_ERR(tcon->clk);
793 }
794
795 if (tcon->quirks->has_channel_0) {
796 tcon->sclk0 = devm_clk_get_enabled(dev, "tcon-ch0");
797 if (IS_ERR(tcon->sclk0)) {
798 dev_err(dev, "Couldn't get the TCON channel 0 clock\n");
799 return PTR_ERR(tcon->sclk0);
800 }
801 }
802
803 if (tcon->quirks->has_channel_1) {
804 tcon->sclk1 = devm_clk_get(dev, "tcon-ch1");
805 if (IS_ERR(tcon->sclk1)) {
806 dev_err(dev, "Couldn't get the TCON channel 1 clock\n");
807 return PTR_ERR(tcon->sclk1);
808 }
809 }
810
> 811 put_device(&pdev->dev);
812
813 return 0;
814 }
815
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Hi Wentao,
kernel test robot noticed the following build errors:
[auto build test ERROR on sunxi/sunxi/for-next]
[also build test ERROR on daeinki-drm-exynos/exynos-drm-next drm/drm-next drm-i915/for-linux-next drm-i915/for-linux-next-fixes drm-misc/drm-misc-next drm-tip/drm-tip linus/master v7.3-rc3 next-20260916]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Wentao-Liang/drm-sun4i-Fix-pdev-reference-leak-in-sun8i_r40_tcon_tv_set_mux/20260916-182412
base: https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi/for-next
patch link: https://lore.kernel.org/r/20260916182412.2091681-1-vulab%40iscas.ac.cn
patch subject: [PATCH] drm/sun4i: Fix pdev reference leak in sun8i_r40_tcon_tv_set_mux()
config: alpha-randconfig-r1306-20260917 (https://download.01.org/0day-ci/archive/20260917/202609172103.AfhCF3XZ-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 15.2.0
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260917/202609172103.AfhCF3XZ-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609172103.AfhCF3XZ-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/gpu/drm/sun4i/sun4i_tcon.c: In function 'sun4i_tcon_init_clocks':
>> drivers/gpu/drm/sun4i/sun4i_tcon.c:811:21: error: 'pdev' undeclared (first use in this function); did you mean 'dev'?
811 | put_device(&pdev->dev);
| ^~~~
| dev
drivers/gpu/drm/sun4i/sun4i_tcon.c:811:21: note: each undeclared identifier is reported only once for each function it appears in
vim +811 drivers/gpu/drm/sun4i/sun4i_tcon.c
785
786 static int sun4i_tcon_init_clocks(struct device *dev,
787 struct sun4i_tcon *tcon)
788 {
789 tcon->clk = devm_clk_get_enabled(dev, "ahb");
790 if (IS_ERR(tcon->clk)) {
791 dev_err(dev, "Couldn't get the TCON bus clock\n");
792 return PTR_ERR(tcon->clk);
793 }
794
795 if (tcon->quirks->has_channel_0) {
796 tcon->sclk0 = devm_clk_get_enabled(dev, "tcon-ch0");
797 if (IS_ERR(tcon->sclk0)) {
798 dev_err(dev, "Couldn't get the TCON channel 0 clock\n");
799 return PTR_ERR(tcon->sclk0);
800 }
801 }
802
803 if (tcon->quirks->has_channel_1) {
804 tcon->sclk1 = devm_clk_get(dev, "tcon-ch1");
805 if (IS_ERR(tcon->sclk1)) {
806 dev_err(dev, "Couldn't get the TCON channel 1 clock\n");
807 return PTR_ERR(tcon->sclk1);
808 }
809 }
810
> 811 put_device(&pdev->dev);
812
813 return 0;
814 }
815
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
© 2016 - 2026 Red Hat, Inc.