2021-02-25 09:58:46

by Yang Li

[permalink] [raw]
Subject: [PATCH] media: exynos4-is: add missing call to of_node_put()

In one of the error paths of the for_each_child_of_node() loop in
fimc_md_parse_one_endpoint, add missing call to of_node_put().

Fix the following coccicheck warning:
./drivers/media/platform/exynos4-is/media-dev.c:489:1-23: WARNING:
Function "for_each_child_of_node" should have of_node_put() before
return around line 492.

Reported-by: Abaci Robot <[email protected]>
Signed-off-by: Yang Li <[email protected]>
---
drivers/media/platform/exynos4-is/media-dev.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/media/platform/exynos4-is/media-dev.c b/drivers/media/platform/exynos4-is/media-dev.c
index 8e1e892..467bc69 100644
--- a/drivers/media/platform/exynos4-is/media-dev.c
+++ b/drivers/media/platform/exynos4-is/media-dev.c
@@ -489,6 +489,7 @@ static int fimc_md_parse_port_node(struct fimc_md *fmd,
for_each_child_of_node(port, ep) {
ret = fimc_md_parse_one_endpoint(fmd, ep);
if (ret < 0)
+ of_node_put(ep);
return ret;
}

--
1.8.3.1


2021-02-25 11:49:23

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] media: exynos4-is: add missing call to of_node_put()

Hi Yang,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linuxtv-media/master]
[also build test WARNING on v5.11 next-20210225]
[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]

url: https://github.com/0day-ci/linux/commits/Yang-Li/media-exynos4-is-add-missing-call-to-of_node_put/20210225-170948
base: git://linuxtv.org/media_tree.git master
config: riscv-allyesconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/46e168f580a04f0a6d7b33df84194f95bc780ee9
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Yang-Li/media-exynos4-is-add-missing-call-to-of_node_put/20210225-170948
git checkout 46e168f580a04f0a6d7b33df84194f95bc780ee9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

drivers/media/platform/exynos4-is/media-dev.c: In function 'fimc_md_parse_port_node':
>> drivers/media/platform/exynos4-is/media-dev.c:491:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
491 | if (ret < 0)
| ^~
drivers/media/platform/exynos4-is/media-dev.c:493:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
493 | return ret;
| ^~~~~~


vim +/if +491 drivers/media/platform/exynos4-is/media-dev.c

2b13f7d4e3822e drivers/media/platform/s5p-fimc/fimc-mdevice.c Sylwester Nawrocki 2013-03-29 481
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 482 /* Parse port node and register as a sub-device any sensor specified there. */
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 483 static int fimc_md_parse_port_node(struct fimc_md *fmd,
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 484 struct device_node *port)
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 485 {
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 486 struct device_node *ep;
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 487 int ret;
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 488
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 489 for_each_child_of_node(port, ep) {
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 490 ret = fimc_md_parse_one_endpoint(fmd, ep);
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 @491 if (ret < 0)
46e168f580a04f drivers/media/platform/exynos4-is/media-dev.c Yang Li 2021-02-25 492 of_node_put(ep);
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 493 return ret;
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 494 }
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 495
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 496 return 0;
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 497 }
18174117ba18c5 drivers/media/platform/exynos4-is/media-dev.c Jonathan Bakker 2020-07-31 498

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]


Attachments:
(No filename) (4.13 kB)
.config.gz (67.06 kB)
Download all attachments

2021-02-25 14:44:13

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH] media: exynos4-is: add missing call to of_node_put()

On Thu, 25 Feb 2021 at 10:04, Yang Li <[email protected]> wrote:
>
> In one of the error paths of the for_each_child_of_node() loop in
> fimc_md_parse_one_endpoint, add missing call to of_node_put().
>
> Fix the following coccicheck warning:
> ./drivers/media/platform/exynos4-is/media-dev.c:489:1-23: WARNING:
> Function "for_each_child_of_node" should have of_node_put() before
> return around line 492.
>
> Reported-by: Abaci Robot <[email protected]>

Please make the reports public. Otherwise the actual credits should go
to Coccinelle not to some hidden/unknown tool...

> Signed-off-by: Yang Li <[email protected]>
> ---
> drivers/media/platform/exynos4-is/media-dev.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/media/platform/exynos4-is/media-dev.c b/drivers/media/platform/exynos4-is/media-dev.c
> index 8e1e892..467bc69 100644
> --- a/drivers/media/platform/exynos4-is/media-dev.c
> +++ b/drivers/media/platform/exynos4-is/media-dev.c
> @@ -489,6 +489,7 @@ static int fimc_md_parse_port_node(struct fimc_md *fmd,
> for_each_child_of_node(port, ep) {
> ret = fimc_md_parse_one_endpoint(fmd, ep);
> if (ret < 0)
> + of_node_put(ep);

This is wrong...

Best regards,
Krzysztof