From: Janne Grunau <j@jannau.net>
To: Julia Lawall <julia.lawall@inria.fr>
Cc: Asahi Lina <lina@asahilina.net>, oe-kbuild-all@lists.linux.dev
Subject: Re: [asahilinux:bits/240-isp 22/52] drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197. (fwd)
Date: Wed, 2 Oct 2024 22:37:51 +0200 [thread overview]
Message-ID: <Zv2vHxEpumLBorr5@robin> (raw)
In-Reply-To: <9e433f24-c9e5-6d28-4a77-8d6014a8301@inria.fr>
Hej,
On Wed, Oct 02, 2024 at 09:34:09AM +0200, Julia Lawall wrote:
> Please check whether lines 197 and 201 need of_node_put. Maybe you can
> alternatively use for_each_child_of_node_scoped.
These were false positives since the called function isp_of_read_coord()
calls of_node_put(). It was documented but is still surprising /
unorthodox. I've replaced the loop with for_each_child_of_node_scoped
anyway and added __free(device_node) cleanup for np to avoid the goto.
Thanks for the report. Despite being a false positive it still pointed
to code which was more complicated than it needs to be now.
Janne
>
> ---------- Forwarded message ----------
> Date: Wed, 2 Oct 2024 13:55:07 +0800
> From: kernel test robot <lkp@intel.com>
> To: oe-kbuild@lists.linux.dev
> Cc: lkp@intel.com, Julia Lawall <julia.lawall@inria.fr>
> Subject: [asahilinux:bits/240-isp 22/52]
> drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function
> "for_each_child_of_node" should have of_node_put() before goto around lines
> 197.
>
> BCC: lkp@intel.com
> CC: oe-kbuild-all@lists.linux.dev
> TO: Asahi Lina <lina@asahilina.net>
> CC: Janne Grunau <j@jannau.net>
>
> tree: https://github.com/AsahiLinux/linux bits/240-isp
> head: 2eb812826ec58e3b803055a8aa0fd857f1675f14
> commit: b4d2b4922ce8a77666206a64314192e08c1aca0a [22/52] media: apple: isp: Working t602x and multiple formats and more fixes
> :::::: branch date: 2 weeks ago
> :::::: commit date: 2 weeks ago
> config: arc-randconfig-r062-20241002 (https://download.01.org/0day-ci/archive/20241002/202410021337.EQ74x7c7-lkp@intel.com/config)
> compiler: arc-elf-gcc (GCC) 13.2.0
>
> 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>
> | Reported-by: Julia Lawall <julia.lawall@inria.fr>
> | Closes: https://lore.kernel.org/r/202410021337.EQ74x7c7-lkp@intel.com/
>
> cocci warnings: (new ones prefixed by >>)
> >> drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197.
> drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 201.
>
> vim +/for_each_child_of_node +183 drivers/media/platform/apple/isp/isp-drv.c
>
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 154
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 155 static int apple_isp_init_presets(struct apple_isp *isp)
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 156 {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 157 struct device *dev = isp->dev;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 158 struct device_node *np, *child;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 159 struct isp_preset *preset;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 160 int err = 0;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 161
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 162 np = of_get_child_by_name(dev->of_node, "sensor-presets");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 163 if (!np) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 164 dev_err(dev, "failed to get DT node 'presets'\n");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 165 return -EINVAL;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 166 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 167
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 168 isp->num_presets = of_get_child_count(np);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 169 if (!isp->num_presets) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 170 dev_err(dev, "no sensor presets found\n");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 171 err = -EINVAL;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 172 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 173 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 174
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 175 isp->presets = devm_kzalloc(
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 176 dev, sizeof(*isp->presets) * isp->num_presets, GFP_KERNEL);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 177 if (!isp->presets) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 178 err = -ENOMEM;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 179 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 180 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 181
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 182 preset = isp->presets;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 @183 for_each_child_of_node(np, child) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 184 u32 xywh[4];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 185
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 186 err = of_property_read_u32(child, "apple,config-index",
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 187 &preset->index);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 188 if (err) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 189 dev_err(dev, "no apple,config-index property\n");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 190 of_node_put(child);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 191 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 192 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 193
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 194 err = isp_of_read_coord(dev, child, "apple,input-size",
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 195 &preset->input_dim);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 196 if (err)
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 197 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 198 err = isp_of_read_coord(dev, child, "apple,output-size",
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 199 &preset->output_dim);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 200 if (err)
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 201 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 202
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 203 err = of_property_read_u32_array(child, "apple,crop", xywh, 4);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 204 if (err) {
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 205 dev_err(dev, "failed to read 'apple,crop' property\n");
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 206 of_node_put(child);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 207 goto err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 208 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 209 preset->crop_offset.x = xywh[0];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 210 preset->crop_offset.y = xywh[1];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 211 preset->crop_size.x = xywh[2];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 212 preset->crop_size.y = xywh[3];
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 213
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 214 preset++;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 215 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 216
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 217 err:
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 218 of_node_put(np);
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 219 return err;
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 220 }
> b4d2b4922ce8a7 Asahi Lina 2023-09-24 221
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2024-10-02 20:37 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-02 7:34 [asahilinux:bits/240-isp 22/52] drivers/media/platform/apple/isp/isp-drv.c:183:1-23: WARNING: Function "for_each_child_of_node" should have of_node_put() before goto around lines 197. (fwd) Julia Lawall
2024-10-02 20:37 ` Janne Grunau [this message]
2024-10-02 20:43 ` Julia Lawall
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zv2vHxEpumLBorr5@robin \
--to=j@jannau.net \
--cc=julia.lawall@inria.fr \
--cc=lina@asahilina.net \
--cc=oe-kbuild-all@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.