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:   d0c745e7b2d6ce8bcc768b32361ab8ef520821ee
commit: 0bbb265f7089584aaa6d440805ca75ea4f3930d4 [3072/3449] EDAC/mc: Get rid 
of silly one-shot struct allocation in edac_mc_alloc()
:::::: branch date: 10 hours ago
:::::: commit date: 30 hours ago
config: i386-randconfig-m021-20220411 
(https://download.01.org/0day-ci/archive/20220412/[email protected]/config)
compiler: gcc-11 (Debian 11.2.0-19) 11.2.0

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

smatch warnings:
drivers/edac/edac_mc.c:424 edac_mc_alloc() warn: Please consider using kcalloc 
instead

vim +424 drivers/edac/edac_mc.c

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

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