CC: [email protected]
BCC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Borislav Petkov <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   e7d6987e09a328d4a949701db40ef63fbb970670
commit: 0bbb265f7089584aaa6d440805ca75ea4f3930d4 [2375/5845] EDAC/mc: Get rid 
of silly one-shot struct allocation in edac_mc_alloc()
:::::: branch date: 28 hours ago
:::::: commit date: 12 days ago
compiler: powerpc64-linux-gcc (GCC) 11.2.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 0bbb265f7089584aaa6d440805ca75ea4f3930d4
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

   drivers/edac/edac_mc.c:484:62: warning: Parameter 'dev' can be declared with 
const [constParameter]
   static struct mem_ctl_info *__find_mci_by_dev(struct device *dev)
                                                                ^
>> drivers/edac/edac_mc.c:396:24: warning: Variable 'layer' is not assigned a 
>> value. [unassignedVariable]
    struct edac_mc_layer *layer;
                          ^
>> kernel/bpf/core.c:1667:3: warning: Syntax Error: AST broken, binary operator 
>> '=' doesn't have two operands. [internalAstError]
     BPF_INSN_MAP(BPF_INSN_2_LBL, BPF_INSN_3_LBL),
     ^

vim +/layer +396 drivers/edac/edac_mc.c

da9bb1d27b21cb Alan Cox        2006-01-18  389  
1f27c79062385a Robert Richter  2020-01-23  390  struct mem_ctl_info 
*edac_mc_alloc(unsigned int mc_num,
1f27c79062385a Robert Richter  2020-01-23  391                                  
   unsigned int n_layers,
1f27c79062385a Robert Richter  2020-01-23  392                                  
   struct edac_mc_layer *layers,
1f27c79062385a Robert Richter  2020-01-23  393                                  
   unsigned int sz_pvt)
1f27c79062385a Robert Richter  2020-01-23  394  {
1f27c79062385a Robert Richter  2020-01-23  395          struct mem_ctl_info 
*mci;
1f27c79062385a Robert Richter  2020-01-23 @396          struct edac_mc_layer 
*layer;
0bbb265f708958 Borislav Petkov 2022-02-20  397          unsigned int idx, 
tot_dimms = 1;
4aa92c86463273 Robert Richter  2020-02-17  398          unsigned int tot_csrows 
= 1, tot_channels = 1;
1f27c79062385a Robert Richter  2020-01-23  399          bool per_rank = false;
1f27c79062385a Robert Richter  2020-01-23  400  
1f27c79062385a Robert Richter  2020-01-23  401          if (WARN_ON(n_layers > 
EDAC_MAX_LAYERS || n_layers == 0))
1f27c79062385a Robert Richter  2020-01-23  402                  return NULL;
1f27c79062385a Robert Richter  2020-01-23  403  
1f27c79062385a Robert Richter  2020-01-23  404          /*
1f27c79062385a Robert Richter  2020-01-23  405           * Calculate the total 
amount of dimms and csrows/cschannels while
1f27c79062385a Robert Richter  2020-01-23  406           * in the old API 
emulation mode
1f27c79062385a Robert Richter  2020-01-23  407           */
1f27c79062385a Robert Richter  2020-01-23  408          for (idx = 0; idx < 
n_layers; idx++) {
1f27c79062385a Robert Richter  2020-01-23  409                  tot_dimms *= 
layers[idx].size;
1f27c79062385a Robert Richter  2020-01-23  410  
1f27c79062385a Robert Richter  2020-01-23  411                  if 
(layers[idx].is_virt_csrow)
1f27c79062385a Robert Richter  2020-01-23  412                          
tot_csrows *= layers[idx].size;
1f27c79062385a Robert Richter  2020-01-23  413                  else
1f27c79062385a Robert Richter  2020-01-23  414                          
tot_channels *= layers[idx].size;
1f27c79062385a Robert Richter  2020-01-23  415  
1f27c79062385a Robert Richter  2020-01-23  416                  if 
(layers[idx].type == EDAC_MC_LAYER_CHIP_SELECT)
1f27c79062385a Robert Richter  2020-01-23  417                          
per_rank = true;
1f27c79062385a Robert Richter  2020-01-23  418          }
1f27c79062385a Robert Richter  2020-01-23  419  
0bbb265f708958 Borislav Petkov 2022-02-20  420          mci = 
kzalloc(sizeof(struct mem_ctl_info), GFP_KERNEL);
0bbb265f708958 Borislav Petkov 2022-02-20  421          if (!mci)
1f27c79062385a Robert Richter  2020-01-23  422                  return NULL;
1f27c79062385a Robert Richter  2020-01-23  423  
0bbb265f708958 Borislav Petkov 2022-02-20  424          mci->layers = 
kmalloc_array(n_layers, sizeof(struct edac_mc_layer), GFP_KERNEL | __GFP_ZERO);
0bbb265f708958 Borislav Petkov 2022-02-20  425          if (!mci->layers)
0bbb265f708958 Borislav Petkov 2022-02-20  426                  goto error;
0bbb265f708958 Borislav Petkov 2022-02-20  427  
0bbb265f708958 Borislav Petkov 2022-02-20  428          mci->pvt_info = 
kzalloc(sz_pvt, GFP_KERNEL);
0bbb265f708958 Borislav Petkov 2022-02-20  429          if (!mci->pvt_info)
0bbb265f708958 Borislav Petkov 2022-02-20  430                  goto error;
0bbb265f708958 Borislav Petkov 2022-02-20  431  
1f27c79062385a Robert Richter  2020-01-23  432          mci->dev.release = 
mci_release;
1f27c79062385a Robert Richter  2020-01-23  433          
device_initialize(&mci->dev);
1f27c79062385a Robert Richter  2020-01-23  434  
1f27c79062385a Robert Richter  2020-01-23  435          /* setup index and 
various internal pointers */
1f27c79062385a Robert Richter  2020-01-23  436          mci->mc_idx = mc_num;
1f27c79062385a Robert Richter  2020-01-23  437          mci->tot_dimms = 
tot_dimms;
1f27c79062385a Robert Richter  2020-01-23  438          mci->n_layers = 
n_layers;
1f27c79062385a Robert Richter  2020-01-23  439          memcpy(mci->layers, 
layers, sizeof(*layer) * n_layers);
1f27c79062385a Robert Richter  2020-01-23  440          mci->nr_csrows = 
tot_csrows;
1f27c79062385a Robert Richter  2020-01-23  441          mci->num_cschannel = 
tot_channels;
1f27c79062385a Robert Richter  2020-01-23  442          mci->csbased = per_rank;
1f27c79062385a Robert Richter  2020-01-23  443  
1f27c79062385a Robert Richter  2020-01-23  444          if 
(edac_mc_alloc_csrows(mci))
1f27c79062385a Robert Richter  2020-01-23  445                  goto error;
1f27c79062385a Robert Richter  2020-01-23  446  
1f27c79062385a Robert Richter  2020-01-23  447          if 
(edac_mc_alloc_dimms(mci))
1f27c79062385a Robert Richter  2020-01-23  448                  goto error;
1f27c79062385a Robert Richter  2020-01-23  449  
1f27c79062385a Robert Richter  2020-01-23  450          mci->op_state = 
OP_ALLOC;
1f27c79062385a Robert Richter  2020-01-23  451  
1f27c79062385a Robert Richter  2020-01-23  452          return mci;
1f27c79062385a Robert Richter  2020-01-23  453  
1f27c79062385a Robert Richter  2020-01-23  454  error:
1f27c79062385a Robert Richter  2020-01-23  455          _edac_mc_free(mci);
1f27c79062385a Robert Richter  2020-01-23  456  
1f27c79062385a Robert Richter  2020-01-23  457          return NULL;
1f27c79062385a Robert Richter  2020-01-23  458  }
1f27c79062385a Robert Richter  2020-01-23  459  
EXPORT_SYMBOL_GPL(edac_mc_alloc);
1f27c79062385a Robert Richter  2020-01-23  460  

:::::: The code at line 396 was first introduced by commit
:::::: 1f27c79062385af38c7c075f0fc174f98164ab2e EDAC/mc: Reorder functions 
edac_mc_alloc*()

:::::: TO: Robert Richter <[email protected]>
:::::: CC: Borislav Petkov <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to