All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.