Hi Matthew,

I love your patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.17 next-20180607]
[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/Matthew-Wilcox/More-conversions-to-struct_size/20180608-112654
config: x86_64-randconfig-x016-201822 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   arch/x86/events/intel/uncore.c: In function 'uncore_type_init':
>> arch/x86/events/intel/uncore.c:838:24: error: implicit declaration of 
>> function 'struct_size' [-Werror=implicit-function-declaration]
      attr_group = kzalloc(struct_size(attr_group, attrs, i + 1),
                           ^~~~~~~~~~~
   arch/x86/events/intel/uncore.c:838:48: error: 'attrs' undeclared (first use 
in this function); did you mean 'iattr'?
      attr_group = kzalloc(struct_size(attr_group, attrs, i + 1),
                                                   ^~~~~
                                                   iattr
   arch/x86/events/intel/uncore.c:838:48: note: each undeclared identifier is 
reported only once for each function it appears in
   cc1: some warnings being treated as errors

vim +/struct_size +838 arch/x86/events/intel/uncore.c

   804  
   805  static int __init uncore_type_init(struct intel_uncore_type *type, bool 
setid)
   806  {
   807          struct intel_uncore_pmu *pmus;
   808          size_t size;
   809          int i, j;
   810  
   811          pmus = kzalloc(sizeof(*pmus) * type->num_boxes, GFP_KERNEL);
   812          if (!pmus)
   813                  return -ENOMEM;
   814  
   815          size = max_packages * sizeof(struct intel_uncore_box *);
   816  
   817          for (i = 0; i < type->num_boxes; i++) {
   818                  pmus[i].func_id = setid ? i : -1;
   819                  pmus[i].pmu_idx = i;
   820                  pmus[i].type    = type;
   821                  pmus[i].boxes   = kzalloc(size, GFP_KERNEL);
   822                  if (!pmus[i].boxes)
   823                          goto err;
   824          }
   825  
   826          type->pmus = pmus;
   827          type->unconstrainted = (struct event_constraint)
   828                  __EVENT_CONSTRAINT(0, (1ULL << type->num_counters) - 1,
   829                                  0, type->num_counters, 0, 0);
   830  
   831          if (type->event_descs) {
   832                  struct {
   833                          struct attribute_group group;
   834                          struct attribute *attrs[];
   835                  } *attr_group;
   836                  for (i = 0; type->event_descs[i].attr.attr.name; i++);
   837  
 > 838                  attr_group = kzalloc(struct_size(attr_group, attrs, i + 
 > 1),
   839                                                                  
GFP_KERNEL);
   840                  if (!attr_group)
   841                          goto err;
   842  
   843                  attr_group->group.name = "events";
   844                  attr_group->group.attrs = attr_group->attrs;
   845  
   846                  for (j = 0; j < i; j++)
   847                          attr_group->attrs[j] = 
&type->event_descs[j].attr.attr;
   848  
   849                  type->events_group = &attr_group->group;
   850          }
   851  
   852          type->pmu_group = &uncore_pmu_attr_group;
   853  
   854          return 0;
   855  
   856  err:
   857          for (i = 0; i < type->num_boxes; i++)
   858                  kfree(pmus[i].boxes);
   859          kfree(pmus);
   860  
   861          return -ENOMEM;
   862  }
   863  

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