Hi Benjamin,

[auto build test WARNING on tip/timers/core]
[also build test WARNING on next-20170915]
[cannot apply to robh/for-next v4.13]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Benjamin-Gaignard/stm32-clocksource-driver-rework/20170915-220617
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

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/clocksource/timer-stm32.c: In function 'stm32_timer_init':
>> drivers/clocksource/timer-stm32.c:180:11: warning: 'err' may be used 
>> uninitialized in this function [-Wmaybe-uninitialized]
     int irq, err;
              ^~~

vim +/err +180 drivers/clocksource/timer-stm32.c

   173  
   174  static int __init stm32_timer_init(struct device_node *node)
   175  {
   176          struct reset_control *rstc;
   177          void __iomem *timer_base;
   178          unsigned long max_arr;
   179          struct clk *clk;
 > 180          int irq, err;
   181  
   182          timer_base = of_io_request_and_map(node, 0, 
of_node_full_name(node));
   183          if (IS_ERR(timer_base)) {
   184                  pr_err("Can't map registers\n");
   185                  goto out;
   186          }
   187  
   188          irq = irq_of_parse_and_map(node, 0);
   189          if (irq <= 0) {
   190                  pr_err("Can't parse IRQ\n");
   191                  goto out_unmap;
   192          }
   193  
   194          clk = of_clk_get(node, 0);
   195          if (IS_ERR(clk)) {
   196                  pr_err("Can't get timer clock\n");
   197                  goto out_unmap;
   198          }
   199  
   200          rstc = of_reset_control_get(node, NULL);
   201          if (!IS_ERR(rstc)) {
   202                  reset_control_assert(rstc);
   203                  reset_control_deassert(rstc);
   204          }
   205  
   206          err = clk_prepare_enable(clk);
   207          if (err) {
   208                  pr_err("Couldn't enable parent clock\n");
   209                  goto out_clk;
   210          }
   211  
   212          /* Detect whether the timer is 16 or 32 bits */
   213          writel_relaxed(~0U, timer_base + TIM_ARR);
   214          max_arr = readl_relaxed(timer_base + TIM_ARR);
   215          if (max_arr != ~0U) {
   216                  err = -EINVAL;
   217                  pr_err("32 bits timer is needed\n");
   218                  goto out_unprepare;
   219          }
   220  
   221          err = stm32_clocksource_init(node, timer_base, clk);
   222          if (err)
   223                  goto out_unprepare;
   224  
   225          err = stm32_clockevent_init(node, timer_base, clk, irq);
   226          if (err)
   227                  goto out_unprepare;
   228  
   229          return 0;
   230  
   231  out_unprepare:
   232          clk_disable_unprepare(clk);
   233  out_clk:
   234          clk_put(clk);
   235  out_unmap:
   236          iounmap(timer_base);
   237  out:
   238          return err;
   239  }
   240  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to