* [renesas-drivers:topic/rcar2-cpg-mssr 10/32] drivers/clk/renesas/renesas-cpg-mssr.c:323:14-21: ERROR: PTR_ERR applied after initialization to constant on line 260
@ 2017-04-25 18:52 kbuild test robot
2017-04-26 12:44 ` Geert Uytterhoeven
0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2017-04-25 18:52 UTC (permalink / raw)
To: Geert Uytterhoeven; +Cc: kbuild-all, linux-renesas-soc
[-- Attachment #1: Type: text/plain, Size: 9883 bytes --]
Hi Geert,
First bad commit (maybe != root cause):
tree: https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git topic/rcar2-cpg-mssr
head: bd948f4b8c455dfdbc8175b5c2bc29c91b048971
commit: bb107dc7b20e9c63fb44a9fa132d6581a6b69944 [10/32] [RFC] clk: renesas: Rework Kconfig and Makefile logic
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
git checkout bb107dc7b20e9c63fb44a9fa132d6581a6b69944
# save the attached .config to linux build tree
make ARCH=i386
Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
All warnings (new ones prefixed by >>):
drivers/clk/renesas/clk-sh73a0.c: In function 'sh73a0_cpg_clocks_init':
>> drivers/clk/renesas/clk-sh73a0.c:155:10: warning: 'parent_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
return clk_register_fixed_factor(NULL, name, parent_name, 0,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mult, div);
~~~~~~~~~~
drivers/clk/renesas/clk-sh73a0.c:82:14: note: 'parent_name' was declared here
const char *parent_name;
^~~~~~~~~~~
coccinelle warnings: (new ones prefixed by >>)
>> drivers/clk/renesas/renesas-cpg-mssr.c:323:14-21: ERROR: PTR_ERR applied after initialization to constant on line 260
vim +323 drivers/clk/renesas/renesas-cpg-mssr.c
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 254 }
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 255
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 256 static void __init cpg_mssr_register_core_clk(const struct cpg_core_clk *core,
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 257 const struct cpg_mssr_info *info,
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 258 struct cpg_mssr_priv *priv)
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 259 {
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 @260 struct clk *clk = NULL, *parent;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 261 struct device *dev = priv->dev;
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 262 unsigned int id = core->id, div = core->div;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 263 const char *parent_name;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 264
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 265 WARN_DEBUG(id >= priv->num_core_clks);
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 266 WARN_DEBUG(PTR_ERR(priv->clks[id]) != -ENOENT);
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 267
48d0341e drivers/clk/renesas/renesas-cpg-mssr.c Geert Uytterhoeven 2016-09-29 268 if (!core->name) {
48d0341e drivers/clk/renesas/renesas-cpg-mssr.c Geert Uytterhoeven 2016-09-29 269 /* Skip NULLified clock */
48d0341e drivers/clk/renesas/renesas-cpg-mssr.c Geert Uytterhoeven 2016-09-29 270 return;
48d0341e drivers/clk/renesas/renesas-cpg-mssr.c Geert Uytterhoeven 2016-09-29 271 }
48d0341e drivers/clk/renesas/renesas-cpg-mssr.c Geert Uytterhoeven 2016-09-29 272
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 273 switch (core->type) {
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 274 case CLK_TYPE_IN:
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 275 clk = of_clk_get_by_name(priv->dev->of_node, core->name);
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 276 break;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 277
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 278 case CLK_TYPE_FF:
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 279 case CLK_TYPE_DIV6P1:
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 280 case CLK_TYPE_DIV6_RO:
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 281 WARN_DEBUG(core->parent >= priv->num_core_clks);
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 282 parent = priv->clks[core->parent];
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 283 if (IS_ERR(parent)) {
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 284 clk = parent;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 285 goto fail;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 286 }
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 287
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 288 parent_name = __clk_get_name(parent);
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 289
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 290 if (core->type == CLK_TYPE_DIV6_RO)
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 291 /* Multiply with the DIV6 register value */
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 292 div *= (readl(priv->base + core->offset) & 0x3f) + 1;
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 293
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 294 if (core->type == CLK_TYPE_DIV6P1) {
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 295 clk = cpg_div6_register(core->name, 1, &parent_name,
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 296 priv->base + core->offset);
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 297 } else {
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 298 clk = clk_register_fixed_factor(NULL, core->name,
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 299 parent_name, 0,
5d3927f6 drivers/clk/renesas/renesas-cpg-mssr.c Wolfram Sang 2016-03-30 300 core->mult, div);
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 301 }
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 302 break;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 303
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 304 default:
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 305 if (info->cpg_clk_register)
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 306 clk = info->cpg_clk_register(dev, core, info,
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 307 priv->clks, priv->base);
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 308 else
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 309 dev_err(dev, "%s has unsupported core clock type %u\n",
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 310 core->name, core->type);
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 311 break;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 312 }
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 313
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 314 if (IS_ERR_OR_NULL(clk))
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 315 goto fail;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 316
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 317 dev_dbg(dev, "Core clock %pC at %pCr Hz\n", clk, clk);
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 318 priv->clks[id] = clk;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 319 return;
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 320
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 321 fail:
1b9fe703 drivers/clk/renesas/renesas-cpg-mssr.c Geert Uytterhoeven 2016-10-18 322 dev_err(dev, "Failed to register %s clock %s: %ld\n", "core",
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 @323 core->name, PTR_ERR(clk));
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 324 }
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 325
f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 326 static void __init cpg_mssr_register_mod_clk(const struct mssr_mod_clk *mod,
:::::: The code at line 323 was first introduced by commit
:::::: f793d1e51705b276f083c1dc0dc75fb4cc4375c7 clk: shmobile: Add new CPG/MSSR driver core
:::::: TO: Geert Uytterhoeven <geert+renesas@glider.be>
:::::: CC: Geert Uytterhoeven <geert+renesas@glider.be>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 59089 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [renesas-drivers:topic/rcar2-cpg-mssr 10/32] drivers/clk/renesas/renesas-cpg-mssr.c:323:14-21: ERROR: PTR_ERR applied after initialization to constant on line 260
2017-04-25 18:52 [renesas-drivers:topic/rcar2-cpg-mssr 10/32] drivers/clk/renesas/renesas-cpg-mssr.c:323:14-21: ERROR: PTR_ERR applied after initialization to constant on line 260 kbuild test robot
@ 2017-04-26 12:44 ` Geert Uytterhoeven
0 siblings, 0 replies; 2+ messages in thread
From: Geert Uytterhoeven @ 2017-04-26 12:44 UTC (permalink / raw)
To: kbuild test robot; +Cc: Geert Uytterhoeven, kbuild-all, Linux-Renesas
Hi Fengguang,
On Tue, Apr 25, 2017 at 8:52 PM, kbuild test robot
<fengguang.wu@intel.com> wrote:
> First bad commit (maybe != root cause):
Indeed, it's exposed by broadening compile-testing.
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git topic/rcar2-cpg-mssr
> head: bd948f4b8c455dfdbc8175b5c2bc29c91b048971
> commit: bb107dc7b20e9c63fb44a9fa132d6581a6b69944 [10/32] [RFC] clk: renesas: Rework Kconfig and Makefile logic
> config: i386-allmodconfig (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
> git checkout bb107dc7b20e9c63fb44a9fa132d6581a6b69944
> # save the attached .config to linux build tree
> make ARCH=i386
>
> Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
> http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
>
> All warnings (new ones prefixed by >>):
>
> drivers/clk/renesas/clk-sh73a0.c: In function 'sh73a0_cpg_clocks_init':
>>> drivers/clk/renesas/clk-sh73a0.c:155:10: warning: 'parent_name' may be used uninitialized in this function [-Wmaybe-uninitialized]
> return clk_register_fixed_factor(NULL, name, parent_name, 0,
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> mult, div);
> ~~~~~~~~~~
> drivers/clk/renesas/clk-sh73a0.c:82:14: note: 'parent_name' was declared here
> const char *parent_name;
> ^~~~~~~~~~~
This is indeed a false positive. Some code reorganization may silence this.
> coccinelle warnings: (new ones prefixed by >>)
>
>>> drivers/clk/renesas/renesas-cpg-mssr.c:323:14-21: ERROR: PTR_ERR applied after initialization to constant on line 260
>
> vim +323 drivers/clk/renesas/renesas-cpg-mssr.c
>
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 254 }
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 255
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 256 static void __init cpg_mssr_register_core_clk(const struct cpg_core_clk *core,
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 257 const struct cpg_mssr_info *info,
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 258 struct cpg_mssr_priv *priv)
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 259 {
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 @260 struct clk *clk = NULL, *parent;
Ah, Coccinelle doesn't like NULL error pointers.
Probably it should be initialized to PTR_ERR(-ENOTSUPP) here...
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 304 default:
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 305 if (info->cpg_clk_register)
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 306 clk = info->cpg_clk_register(dev, core, info,
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 307 priv->clks, priv->base);
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 308 else
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 309 dev_err(dev, "%s has unsupported core clock type %u\n",
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 310 core->name, core->type);
... or here.
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 311 break;
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 312 }
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 313
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 314 if (IS_ERR_OR_NULL(clk))
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 315 goto fail;
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 316
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 317 dev_dbg(dev, "Core clock %pC at %pCr Hz\n", clk, clk);
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 318 priv->clks[id] = clk;
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 319 return;
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 320
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 321 fail:
> 1b9fe703 drivers/clk/renesas/renesas-cpg-mssr.c Geert Uytterhoeven 2016-10-18 322 dev_err(dev, "Failed to register %s clock %s: %ld\n", "core",
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 @323 core->name, PTR_ERR(clk));
> f793d1e5 drivers/clk/shmobile/renesas-cpg-mssr.c Geert Uytterhoeven 2015-10-16 324 }
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-04-26 12:44 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-25 18:52 [renesas-drivers:topic/rcar2-cpg-mssr 10/32] drivers/clk/renesas/renesas-cpg-mssr.c:323:14-21: ERROR: PTR_ERR applied after initialization to constant on line 260 kbuild test robot
2017-04-26 12:44 ` Geert Uytterhoeven
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.