Hi Yang,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on regulator/for-next]
[also build test WARNING on v5.11 next-20210225]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Yang-Li/regulator-add-missing-call-to-of_node_put/20210225-171554
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git 
for-next
config: riscv-allmodconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://github.com/0day-ci/linux/commit/1e86ace1b41a7e1cd7f89e0ceba95768d4e5760a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
Yang-Li/regulator-add-missing-call-to-of_node_put/20210225-171554
        git checkout 1e86ace1b41a7e1cd7f89e0ceba95768d4e5760a
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross 
ARCH=riscv 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   drivers/regulator/scmi-regulator.c: In function 'scmi_regulator_probe':
>> drivers/regulator/scmi-regulator.c:346:3: warning: this 'if' clause does not 
>> guard... [-Wmisleading-indentation]
     346 |   if (ret == -ENOMEM)
         |   ^~
   drivers/regulator/scmi-regulator.c:348:4: note: ...this statement, but the 
latter is misleadingly indented as if it were guarded by the 'if'
     348 |    return ret;
         |    ^~~~~~


vim +/if +346 drivers/regulator/scmi-regulator.c

0fbeae70ee7ce98e Cristian Marussi 2020-11-23  298  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  299  static int 
scmi_regulator_probe(struct scmi_device *sdev)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  300  {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  301       int d, ret, num_doms;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  302       struct device_node *np, 
*child;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  303       const struct 
scmi_handle *handle = sdev->handle;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  304       struct 
scmi_regulator_info *rinfo;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  305  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  306       if (!handle || 
!handle->voltage_ops)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  307               return -ENODEV;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  308  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  309       num_doms = 
handle->voltage_ops->num_domains_get(handle);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  310       if (num_doms <= 0) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  311               if (!num_doms) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  312                       
dev_err(&sdev->dev,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  313                               
"number of voltage domains invalid\n");
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  314                       
num_doms = -EINVAL;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  315               } else {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  316                       
dev_err(&sdev->dev,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  317                               
"failed to get voltage domains - err:%d\n",
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  318                               
num_doms);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  319               }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  320  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  321               return num_doms;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  322       }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  323  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  324       rinfo = 
devm_kzalloc(&sdev->dev, sizeof(*rinfo), GFP_KERNEL);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  325       if (!rinfo)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  326               return -ENOMEM;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  327  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  328       /* Allocate pointers 
array for all possible domains */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  329       rinfo->sregv = 
devm_kcalloc(&sdev->dev, num_doms,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  330                               
    sizeof(void *), GFP_KERNEL);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  331       if (!rinfo->sregv)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  332               return -ENOMEM;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  333  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  334       rinfo->num_doms = 
num_doms;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  335  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  336       /*
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  337        * Start collecting 
into rinfo->sregv possibly good SCMI Regulators as
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  338        * described by a 
well-formed DT entry and associated with an existing
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  339        * plausible SCMI 
Voltage Domain number, all belonging to this SCMI
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  340        * platform instance 
node (handle->dev->of_node).
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  341        */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  342       np = 
of_find_node_by_name(handle->dev->of_node, "regulators");
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  343       
for_each_child_of_node(np, child) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  344               ret = 
process_scmi_regulator_of_node(sdev, child, rinfo);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  345               /* abort on any 
mem issue */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23 @346               if (ret == 
-ENOMEM)
1e86ace1b41a7e1c Yang Li          2021-02-25  347                       
of_node_put(child);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  348                       return 
ret;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  349       }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  350  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  351       /*
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  352        * Register a regulator 
for each valid regulator-DT-entry that we
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  353        * can successfully 
reach via SCMI and has a valid associated voltage
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  354        * domain.
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  355        */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  356       for (d = 0; d < 
num_doms; d++) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  357               struct 
scmi_regulator *sreg = rinfo->sregv[d];
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  358  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  359               /* Skip empty 
slots */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  360               if (!sreg)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  361                       
continue;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  362  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  363               ret = 
scmi_regulator_common_init(sreg);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  364               /* Skip invalid 
voltage domains */
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  365               if (ret)
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  366                       
continue;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  367  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  368               sreg->rdev = 
devm_regulator_register(&sdev->dev, &sreg->desc,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  369                               
                     &sreg->conf);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  370               if 
(IS_ERR(sreg->rdev)) {
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  371                       
sreg->rdev = NULL;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  372                       
continue;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  373               }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  374  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  375               
dev_info(&sdev->dev,
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  376                        
"Regulator %s registered for domain [%d]\n",
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  377                        
sreg->desc.name, sreg->id);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  378       }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  379  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  380       
dev_set_drvdata(&sdev->dev, rinfo);
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  381  
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  382       return 0;
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  383  }
0fbeae70ee7ce98e Cristian Marussi 2020-11-23  384  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to