diff mbox series

media: exynos4-is: add missing call to of_node_put()

Message ID 1614243836-54718-1-git-send-email-yang.lee@linux.alibaba.com (mailing list archive)
State New, archived
Headers show
Series media: exynos4-is: add missing call to of_node_put() | expand

Commit Message

Yang Li Feb. 25, 2021, 9:03 a.m. UTC
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 <abaci@linux.alibaba.com>
Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
---
 drivers/media/platform/exynos4-is/media-dev.c | 1 +
 1 file changed, 1 insertion(+)

Comments

kernel test robot Feb. 25, 2021, 11:16 a.m. UTC | #1
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 <lkp@intel.com>

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/kbuild-all@lists.01.org
Krzysztof Kozlowski Feb. 25, 2021, 2:41 p.m. UTC | #2
On Thu, 25 Feb 2021 at 10:04, Yang Li <yang.lee@linux.alibaba.com> 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 <abaci@linux.alibaba.com>

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

> Signed-off-by: Yang Li <yang.lee@linux.alibaba.com>
> ---
>  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
diff mbox series

Patch

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;
 	}