Hi Marek,

I love your patch! Perhaps something to improve:

[auto build test WARNING on pm/linux-next]
[also build test WARNING on next-20190207]
[cannot apply to v5.0-rc4]
[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/Marek-Szyprowski/cpufreq-opp-rework-regulator-initialization/20190208-071454
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git 
linux-next
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 8.2.0-11) 8.2.0
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
        GCC_VERSION=8.2.0 make.cross ARCH=sh 

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//cpufreq/cpufreq-dt.c: In function 'dt_cpufreq_probe':
>> drivers//cpufreq/cpufreq-dt.c:149:12: warning: 'cpu_reg' may be used 
>> uninitialized in this function [-Wmaybe-uninitialized]
     priv->reg = cpu_reg;
     ~~~~~~~~~~^~~~~~~~~
   drivers//cpufreq/cpufreq-dt.c:102:20: note: 'cpu_reg' was declared here
     struct regulator *cpu_reg;
                       ^~~~~~~

vim +/cpu_reg +149 drivers//cpufreq/cpufreq-dt.c

    98  
    99  static int get_cpu_resources(struct private_data *priv, unsigned int 
cpu)
   100  {
   101          struct device *cpu_dev;
   102          struct regulator *cpu_reg;
   103          struct clk *cpu_clk;
   104          int ret = 0;
   105          const char *name;
   106  
   107          cpu_dev = get_cpu_device(cpu);
   108          if (!cpu_dev) {
   109                  pr_err("failed to get cpu%d device\n", cpu);
   110                  return -ENODEV;
   111          }
   112  
   113          cpu_clk = clk_get(cpu_dev, NULL);
   114          ret = PTR_ERR_OR_ZERO(cpu_clk);
   115          if (ret) {
   116                  /*
   117                   * If cpu's clk node is present, but clock is not yet
   118                   * registered, we should try defering probe.
   119                   */
   120                  if (ret == -EPROBE_DEFER)
   121                          dev_dbg(cpu_dev, "clock not ready, retry\n");
   122                  else
   123                          dev_err(cpu_dev, "failed to get clock: %d\n", 
ret);
   124  
   125                  return ret;
   126          }
   127  
   128          name = find_supply_name(cpu_dev);
   129          /* Platform doesn't require regulator */
   130          if (!name)
   131                  goto no_regulator;
   132  
   133          cpu_reg = regulator_get_optional(cpu_dev, name);
   134          ret = PTR_ERR_OR_ZERO(cpu_reg);
   135          if (ret) {
   136                  /*
   137                   * If cpu's regulator supply node is present, but 
regulator is
   138                   * not yet registered, we should try defering probe.
   139                   */
   140                  if (ret == -EPROBE_DEFER)
   141                          dev_dbg(cpu_dev, "regulator not ready, 
retry\n");
   142                  else
   143                          dev_dbg(cpu_dev, "no regulator for cpu: %d\n", 
ret);
   144                  goto free;
   145          }
   146  no_regulator:
   147          priv->cpu_dev = cpu_dev;
   148          priv->clk = cpu_clk;
 > 149          priv->reg = cpu_reg;
   150          return 0;
   151  free:
   152          clk_put(cpu_clk);
   153          return ret;
   154  }
   155  

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