Hi Florian, I love your patch! Yet something to improve: [auto build test ERROR on nf-next/master] url: https://github.com/0day-ci/linux/commits/Florian-Westphal/ipv6-remove-dependency-of-nf_defrag_ipv6-on-ipv6-module/20180714-051523 base: https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master config: i386-randconfig-x015-201827 (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=i386 All error/warnings (new ones prefixed by >>): In file included from include/net/netns/mib.h:5:0, from include/net/net_namespace.h:16, from include/linux/netdevice.h:42, from include/net/sock.h:51, from include/linux/tcp.h:23, from net//openvswitch/conntrack.c:16: include/net/ipv6_frag.h: In function 'ip6frag_expire_frag_queue': include/net/ipv6.h:213:16: error: 'struct netns_mib' has no member named 'ipv6_statistics'; did you mean 'ip_statistics'? _DEVINC(net, ipv6, __, idev, field) ^ include/net/snmp.h:161:15: note: in definition of macro '__SNMP_ADD_STATS64' __typeof__(*mib) *ptr = raw_cpu_ptr(mib); \ ^~~ >> include/net/snmp.h:174:40: note: in expansion of macro 'SNMP_ADD_STATS64' #define __SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1) ^~~~~~~~~~~~~~~~ include/net/ipv6.h:171:2: note: in expansion of macro '__SNMP_INC_STATS64' mod##SNMP_INC_STATS64((net)->mib.statname##_statistics, (field));\ ^~~ include/net/ipv6.h:213:3: note: in expansion of macro '_DEVINC' _DEVINC(net, ipv6, __, idev, field) ^~~~~~~ include/net/ipv6_frag.h:80:2: note: in expansion of macro '__IP6_INC_STATS' __IP6_INC_STATS(net, __in6_dev_get(dev), IPSTATS_MIB_REASMFAILS); ^~~~~~~~~~~~~~~ In file included from include/asm-generic/percpu.h:7:0, from arch/x86/include/asm/percpu.h:543, from arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:81, from include/linux/spinlock.h:51, from include/linux/seqlock.h:36, from include/linux/time.h:6, from include/linux/stat.h:19, from include/linux/module.h:10, from net//openvswitch/conntrack.c:14: include/net/ipv6.h:213:16: error: 'struct netns_mib' has no member named 'ipv6_statistics'; did you mean 'ip_statistics'? _DEVINC(net, ipv6, __, idev, field) ^ include/linux/percpu-defs.h:221:47: note: in definition of macro '__verify_pcpu_ptr' const void __percpu *__vpp_verify = (typeof((ptr) + 0))NULL; \ ^~~ >> include/linux/percpu-defs.h:265:47: note: in expansion of macro 'VERIFY_PERCPU_PTR' #define per_cpu_ptr(ptr, cpu) ({ (void)(cpu); VERIFY_PERCPU_PTR(ptr); }) ^~~~~~~~~~~~~~~~~ >> include/linux/percpu-defs.h:266:26: note: in expansion of macro 'per_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~~~~~~~~~ >> include/net/snmp.h:161:27: note: in expansion of macro 'raw_cpu_ptr' __typeof__(*mib) *ptr = raw_cpu_ptr(mib); \ ^~~~~~~~~~~ >> include/net/snmp.h:170:3: note: in expansion of macro '__SNMP_ADD_STATS64' __SNMP_ADD_STATS64(mib, field, addend); \ ^~~~~~~~~~~~~~~~~~ >> include/net/snmp.h:174:40: note: in expansion of macro 'SNMP_ADD_STATS64' #define __SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1) ^~~~~~~~~~~~~~~~ include/net/ipv6.h:171:2: note: in expansion of macro '__SNMP_INC_STATS64' mod##SNMP_INC_STATS64((net)->mib.statname##_statistics, (field));\ ^~~ include/net/ipv6.h:213:3: note: in expansion of macro '_DEVINC' _DEVINC(net, ipv6, __, idev, field) ^~~~~~~ include/net/ipv6_frag.h:80:2: note: in expansion of macro '__IP6_INC_STATS' __IP6_INC_STATS(net, __in6_dev_get(dev), IPSTATS_MIB_REASMFAILS); ^~~~~~~~~~~~~~~ include/net/ipv6.h:213:16: error: 'struct netns_mib' has no member named 'ipv6_statistics'; did you mean 'ip_statistics'? _DEVINC(net, ipv6, __, idev, field) ^ include/linux/percpu-defs.h:262:12: note: in definition of macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ >> include/linux/percpu-defs.h:266:26: note: in expansion of macro 'per_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~~~~~~~~~ >> include/net/snmp.h:161:27: note: in expansion of macro 'raw_cpu_ptr' __typeof__(*mib) *ptr = raw_cpu_ptr(mib); \ ^~~~~~~~~~~ >> include/net/snmp.h:170:3: note: in expansion of macro '__SNMP_ADD_STATS64' __SNMP_ADD_STATS64(mib, field, addend); \ ^~~~~~~~~~~~~~~~~~ >> include/net/snmp.h:174:40: note: in expansion of macro 'SNMP_ADD_STATS64' #define __SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1) ^~~~~~~~~~~~~~~~ include/net/ipv6.h:171:2: note: in expansion of macro '__SNMP_INC_STATS64' mod##SNMP_INC_STATS64((net)->mib.statname##_statistics, (field));\ ^~~ include/net/ipv6.h:213:3: note: in expansion of macro '_DEVINC' _DEVINC(net, ipv6, __, idev, field) ^~~~~~~ include/net/ipv6_frag.h:80:2: note: in expansion of macro '__IP6_INC_STATS' __IP6_INC_STATS(net, __in6_dev_get(dev), IPSTATS_MIB_REASMFAILS); ^~~~~~~~~~~~~~~ include/net/ipv6.h:213:16: error: 'struct netns_mib' has no member named 'ipv6_statistics'; did you mean 'ip_statistics'? _DEVINC(net, ipv6, __, idev, field) ^ include/linux/percpu-defs.h:262:38: note: in definition of macro 'VERIFY_PERCPU_PTR' (typeof(*(__p)) __kernel __force *)(__p); \ ^~~ >> include/linux/percpu-defs.h:266:26: note: in expansion of macro 'per_cpu_ptr' #define raw_cpu_ptr(ptr) per_cpu_ptr(ptr, 0) ^~~~~~~~~~~ >> include/net/snmp.h:161:27: note: in expansion of macro 'raw_cpu_ptr' __typeof__(*mib) *ptr = raw_cpu_ptr(mib); \ ^~~~~~~~~~~ >> include/net/snmp.h:170:3: note: in expansion of macro '__SNMP_ADD_STATS64' __SNMP_ADD_STATS64(mib, field, addend); \ ^~~~~~~~~~~~~~~~~~ >> include/net/snmp.h:174:40: note: in expansion of macro 'SNMP_ADD_STATS64' #define __SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1) ^~~~~~~~~~~~~~~~ include/net/ipv6.h:171:2: note: in expansion of macro '__SNMP_INC_STATS64' mod##SNMP_INC_STATS64((net)->mib.statname##_statistics, (field));\ ^~~ include/net/ipv6.h:213:3: note: in expansion of macro '_DEVINC' _DEVINC(net, ipv6, __, idev, field) ^~~~~~~ include/net/ipv6_frag.h:80:2: note: in expansion of macro '__IP6_INC_STATS' __IP6_INC_STATS(net, __in6_dev_get(dev), IPSTATS_MIB_REASMFAILS); ^~~~~~~~~~~~~~~ In file included from include/net/netns/mib.h:5:0, from include/net/net_namespace.h:16, from include/linux/netdevice.h:42, from include/net/sock.h:51, from include/linux/tcp.h:23, from net//openvswitch/conntrack.c:16: >> include/net/snmp.h:162:30: error: request for member 'syncp' in something not a structure or union u64_stats_update_begin(&ptr->syncp); \ ^ >> include/net/snmp.h:170:3: note: in expansion of macro '__SNMP_ADD_STATS64' __SNMP_ADD_STATS64(mib, field, addend); \ ^~~~~~~~~~~~~~~~~~ >> include/net/snmp.h:174:40: note: in expansion of macro 'SNMP_ADD_STATS64' #define __SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1) ^~~~~~~~~~~~~~~~ include/net/ipv6.h:171:2: note: in expansion of macro '__SNMP_INC_STATS64' mod##SNMP_INC_STATS64((net)->mib.statname##_statistics, (field));\ ^~~ include/net/ipv6.h:213:3: note: in expansion of macro '_DEVINC' _DEVINC(net, ipv6, __, idev, field) ^~~~~~~ include/net/ipv6_frag.h:80:2: note: in expansion of macro '__IP6_INC_STATS' __IP6_INC_STATS(net, __in6_dev_get(dev), IPSTATS_MIB_REASMFAILS); ^~~~~~~~~~~~~~~ >> include/net/snmp.h:163:6: error: request for member 'mibs' in something not a structure or union ptr->mibs[field] += addend; \ ^ >> include/net/snmp.h:170:3: note: in expansion of macro '__SNMP_ADD_STATS64' __SNMP_ADD_STATS64(mib, field, addend); \ ^~~~~~~~~~~~~~~~~~ >> include/net/snmp.h:174:40: note: in expansion of macro 'SNMP_ADD_STATS64' #define __SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1) ^~~~~~~~~~~~~~~~ include/net/ipv6.h:171:2: note: in expansion of macro '__SNMP_INC_STATS64' mod##SNMP_INC_STATS64((net)->mib.statname##_statistics, (field));\ ^~~ include/net/ipv6.h:213:3: note: in expansion of macro '_DEVINC' _DEVINC(net, ipv6, __, idev, field) ^~~~~~~ include/net/ipv6_frag.h:80:2: note: in expansion of macro '__IP6_INC_STATS' __IP6_INC_STATS(net, __in6_dev_get(dev), IPSTATS_MIB_REASMFAILS); ^~~~~~~~~~~~~~~ include/net/snmp.h:164:28: error: request for member 'syncp' in something not a structure or union u64_stats_update_end(&ptr->syncp); \ ^ vim +/syncp +162 include/net/snmp.h 4ce3c183f Eric Dumazet 2010-06-30 158 13415e46c Eric Dumazet 2016-04-27 159 #define __SNMP_ADD_STATS64(mib, field, addend) \ 4ce3c183f Eric Dumazet 2010-06-30 160 do { \ 903ceff7c Christoph Lameter 2014-08-17 @161 __typeof__(*mib) *ptr = raw_cpu_ptr(mib); \ 4ce3c183f Eric Dumazet 2010-06-30 @162 u64_stats_update_begin(&ptr->syncp); \ 4ce3c183f Eric Dumazet 2010-06-30 @163 ptr->mibs[field] += addend; \ 4ce3c183f Eric Dumazet 2010-06-30 164 u64_stats_update_end(&ptr->syncp); \ 4ce3c183f Eric Dumazet 2010-06-30 165 } while (0) 8f0ea0fe3 Eric Dumazet 2011-06-10 166 6aef70a85 Eric Dumazet 2016-04-27 167 #define SNMP_ADD_STATS64(mib, field, addend) \ 4ce3c183f Eric Dumazet 2010-06-30 168 do { \ ba7863f4d Eric Dumazet 2016-04-28 169 local_bh_disable(); \ 13415e46c Eric Dumazet 2016-04-27 @170 __SNMP_ADD_STATS64(mib, field, addend); \ ba7863f4d Eric Dumazet 2016-04-28 171 local_bh_enable(); \ 4ce3c183f Eric Dumazet 2010-06-30 172 } while (0) 8f0ea0fe3 Eric Dumazet 2011-06-10 173 13415e46c Eric Dumazet 2016-04-27 @174 #define __SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1) 4ce3c183f Eric Dumazet 2010-06-30 175 #define SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1) 13415e46c Eric Dumazet 2016-04-27 176 #define __SNMP_UPD_PO_STATS64(mib, basefield, addend) \ 4ce3c183f Eric Dumazet 2010-06-30 177 do { \ 698365fa1 WANG Cong 2014-05-05 178 __typeof__(*mib) *ptr; \ 903ceff7c Christoph Lameter 2014-08-17 179 ptr = raw_cpu_ptr((mib)); \ 4ce3c183f Eric Dumazet 2010-06-30 180 u64_stats_update_begin(&ptr->syncp); \ 4ce3c183f Eric Dumazet 2010-06-30 181 ptr->mibs[basefield##PKTS]++; \ 4ce3c183f Eric Dumazet 2010-06-30 182 ptr->mibs[basefield##OCTETS] += addend; \ 4ce3c183f Eric Dumazet 2010-06-30 183 u64_stats_update_end(&ptr->syncp); \ 4ce3c183f Eric Dumazet 2010-06-30 184 } while (0) 8f0ea0fe3 Eric Dumazet 2011-06-10 185 #define SNMP_UPD_PO_STATS64(mib, basefield, addend) \ 8f0ea0fe3 Eric Dumazet 2011-06-10 186 do { \ ba7863f4d Eric Dumazet 2016-04-28 187 local_bh_disable(); \ 13415e46c Eric Dumazet 2016-04-27 188 __SNMP_UPD_PO_STATS64(mib, basefield, addend); \ ba7863f4d Eric Dumazet 2016-04-28 189 local_bh_enable(); \ 8f0ea0fe3 Eric Dumazet 2011-06-10 190 } while (0) 4ce3c183f Eric Dumazet 2010-06-30 191 #else 13415e46c Eric Dumazet 2016-04-27 192 #define __SNMP_INC_STATS64(mib, field) __SNMP_INC_STATS(mib, field) 4ce3c183f Eric Dumazet 2010-06-30 193 #define SNMP_INC_STATS64(mib, field) SNMP_INC_STATS(mib, field) 4ce3c183f Eric Dumazet 2010-06-30 194 #define SNMP_DEC_STATS64(mib, field) SNMP_DEC_STATS(mib, field) 13415e46c Eric Dumazet 2016-04-27 195 #define __SNMP_ADD_STATS64(mib, field, addend) __SNMP_ADD_STATS(mib, field, addend) 4ce3c183f Eric Dumazet 2010-06-30 196 #define SNMP_ADD_STATS64(mib, field, addend) SNMP_ADD_STATS(mib, field, addend) 4ce3c183f Eric Dumazet 2010-06-30 197 #define SNMP_UPD_PO_STATS64(mib, basefield, addend) SNMP_UPD_PO_STATS(mib, basefield, addend) 13415e46c Eric Dumazet 2016-04-27 198 #define __SNMP_UPD_PO_STATS64(mib, basefield, addend) __SNMP_UPD_PO_STATS(mib, basefield, addend) 4ce3c183f Eric Dumazet 2010-06-30 199 #endif 4ce3c183f Eric Dumazet 2010-06-30 200 :::::: The code at line 162 was first introduced by commit :::::: 4ce3c183fcade7f4b30a33dae90cd774c3d9e094 snmp: 64bit ipstats_mib for all arches :::::: TO: Eric Dumazet <eric.dumazet@xxxxxxxxx> :::::: CC: David S. Miller <davem@xxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip