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