Re: [PATCH 6/6] Convert intel uncore to struct_size

From: kbuild test robot
Date: Fri Jun 08 2018 - 00:10:03 EST


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