Message ID | 20220214200400.513069-1-willemdebruijn.kernel@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] ipv6: per-netns exclusive flowlabel checks | expand |
Hi Willem, Thank you for the patch! Yet something to improve: [auto build test ERROR on net/master] url: https://github.com/0day-ci/linux/commits/Willem-de-Bruijn/ipv6-per-netns-exclusive-flowlabel-checks/20220215-042330 base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 86006f996346e8a5a1ea80637ec949ceeea4ecbc config: arm-netwinder_defconfig (https://download.01.org/0day-ci/archive/20220215/202202150740.uPYefwp7-lkp@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project ea071884b0cc7210b3cc5fe858f0e892a779a23b) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/0day-ci/linux/commit/5d3936d3544b4cdd6d63c896d158d4975a4822c3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Willem-de-Bruijn/ipv6-per-netns-exclusive-flowlabel-checks/20220215-042330 git checkout 5d3936d3544b4cdd6d63c896d158d4975a4822c3 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash net/mptcp/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from net/mptcp/protocol.c:16: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:313:10: note: expanded from macro '__native_word' (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/protocol.c:16: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:313:39: note: expanded from macro '__native_word' (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/protocol.c:16: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:314:10: note: expanded from macro '__native_word' sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/protocol.c:16: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:314:38: note: expanded from macro '__native_word' sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/protocol.c:16: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:48: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/protocol.c:16: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE' __READ_ONCE(x); \ ^ include/asm-generic/rwonce.h:44:65: note: expanded from macro '__READ_ONCE' #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x)) ^ include/linux/compiler_types.h:302:13: note: expanded from macro '__unqual_scalar_typeof' _Generic((x), \ ^ In file included from net/mptcp/protocol.c:16: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE' __READ_ONCE(x); \ ^ include/asm-generic/rwonce.h:44:72: note: expanded from macro '__READ_ONCE' #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x)) ^ In file included from net/mptcp/protocol.c:16: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:402:60: error: invalid operands to binary expression ('long' and 'void') if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key) && ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ 8 errors generated. -- In file included from net/mptcp/options.c:11: In file included from include/net/tcp.h:32: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:313:10: note: expanded from macro '__native_word' (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/options.c:11: In file included from include/net/tcp.h:32: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:313:39: note: expanded from macro '__native_word' (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \ ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/options.c:11: In file included from include/net/tcp.h:32: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:314:10: note: expanded from macro '__native_word' sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/options.c:11: In file included from include/net/tcp.h:32: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:314:38: note: expanded from macro '__native_word' sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/options.c:11: In file included from include/net/tcp.h:32: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE' compiletime_assert_rwonce_type(x); \ ^ include/asm-generic/rwonce.h:36:48: note: expanded from macro 'compiletime_assert_rwonce_type' compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \ ^ include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert' _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__) ^~~~~~~~~ include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert' __compiletime_assert(condition, msg, prefix, suffix) ^~~~~~~~~ include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert' if (!(condition)) \ ^~~~~~~~~ In file included from net/mptcp/options.c:11: In file included from include/net/tcp.h:32: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE' __READ_ONCE(x); \ ^ include/asm-generic/rwonce.h:44:65: note: expanded from macro '__READ_ONCE' #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x)) ^ include/linux/compiler_types.h:302:13: note: expanded from macro '__unqual_scalar_typeof' _Generic((x), \ ^ In file included from net/mptcp/options.c:11: In file included from include/net/tcp.h:32: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) ~~~~~~~~~~~~ ^ include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE' __READ_ONCE(x); \ ^ include/asm-generic/rwonce.h:44:72: note: expanded from macro '__READ_ONCE' #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x)) ^ In file included from net/mptcp/options.c:11: In file included from include/net/tcp.h:32: In file included from include/net/inet_hashtables.h:27: In file included from include/net/route.h:24: In file included from include/net/inetpeer.h:16: >> include/net/ipv6.h:402:60: error: invalid operands to binary expression ('long' and 'void') if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key) && ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ net/mptcp/options.c:552:21: warning: parameter 'remaining' set but not used [-Wunused-but-set-parameter] unsigned int remaining, ^ 1 warning and 8 errors generated. vim +403 include/net/ipv6.h 397 398 extern struct static_key_false_deferred ipv6_flowlabel_exclusive; 399 static inline struct ip6_flowlabel *fl6_sock_lookup(struct sock *sk, 400 __be32 label) 401 { > 402 if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key) && > 403 READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) 404 return __fl6_sock_lookup(sk, label) ? : ERR_PTR(-ENOENT); 405 406 return NULL; 407 } 408 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Hi Willem,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net/master]
url: https://github.com/0day-ci/linux/commits/Willem-de-Bruijn/ipv6-per-netns-exclusive-flowlabel-checks/20220215-042330
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git 86006f996346e8a5a1ea80637ec949ceeea4ecbc
config: hexagon-randconfig-r036-20220214 (https://download.01.org/0day-ci/archive/20220215/202202150837.bGbeRjWx-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project ea071884b0cc7210b3cc5fe858f0e892a779a23b)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/5d3936d3544b4cdd6d63c896d158d4975a4822c3
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Willem-de-Bruijn/ipv6-per-netns-exclusive-flowlabel-checks/20220215-042330
git checkout 5d3936d3544b4cdd6d63c896d158d4975a4822c3
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash net/ceph/ net/sched/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:314:10: note: expanded from macro '__native_word'
sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
^
include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^~~~~~~~~
include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^~~~~~~~~
include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^~~~~~~~~
In file included from net/sched/cls_flow.c:24:
In file included from include/net/ip.h:30:
In file included from include/net/route.h:24:
In file included from include/net/inetpeer.h:16:
include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net'
READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl))
~~~~~~~~~~~~ ^
include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:35: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:314:38: note: expanded from macro '__native_word'
sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
^
include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^~~~~~~~~
include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^~~~~~~~~
include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^~~~~~~~~
In file included from net/sched/cls_flow.c:24:
In file included from include/net/ip.h:30:
In file included from include/net/route.h:24:
In file included from include/net/inetpeer.h:16:
include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net'
READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl))
~~~~~~~~~~~~ ^
include/asm-generic/rwonce.h:49:33: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:48: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:346:22: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^~~~~~~~~
include/linux/compiler_types.h:334:23: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^~~~~~~~~
include/linux/compiler_types.h:326:9: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^~~~~~~~~
In file included from net/sched/cls_flow.c:24:
In file included from include/net/ip.h:30:
In file included from include/net/route.h:24:
In file included from include/net/inetpeer.h:16:
include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net'
READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl))
~~~~~~~~~~~~ ^
include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
__READ_ONCE(x); \
^
include/asm-generic/rwonce.h:44:65: note: expanded from macro '__READ_ONCE'
#define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
^
include/linux/compiler_types.h:302:13: note: expanded from macro '__unqual_scalar_typeof'
_Generic((x), \
^
In file included from net/sched/cls_flow.c:24:
In file included from include/net/ip.h:30:
In file included from include/net/route.h:24:
In file included from include/net/inetpeer.h:16:
include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net'
READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl))
~~~~~~~~~~~~ ^
include/asm-generic/rwonce.h:50:14: note: expanded from macro 'READ_ONCE'
__READ_ONCE(x); \
^
include/asm-generic/rwonce.h:44:72: note: expanded from macro '__READ_ONCE'
#define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
^
In file included from net/sched/cls_flow.c:24:
In file included from include/net/ip.h:30:
In file included from include/net/route.h:24:
In file included from include/net/inetpeer.h:16:
include/net/ipv6.h:402:60: error: invalid operands to binary expression ('long' and 'void')
if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key) &&
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
>> net/sched/cls_flow.c:63:52: warning: shift count >= width of type [-Wshift-count-overflow]
return (a & 0xFFFFFFFF) ^ (BITS_PER_LONG > 32 ? a >> 32 : 0);
^ ~~
1 warning and 8 errors generated.
vim +63 net/sched/cls_flow.c
e5dfb815181fcb Patrick McHardy 2008-01-31 58
e5dfb815181fcb Patrick McHardy 2008-01-31 59 static inline u32 addr_fold(void *addr)
e5dfb815181fcb Patrick McHardy 2008-01-31 60 {
e5dfb815181fcb Patrick McHardy 2008-01-31 61 unsigned long a = (unsigned long)addr;
e5dfb815181fcb Patrick McHardy 2008-01-31 62
e5dfb815181fcb Patrick McHardy 2008-01-31 @63 return (a & 0xFFFFFFFF) ^ (BITS_PER_LONG > 32 ? a >> 32 : 0);
e5dfb815181fcb Patrick McHardy 2008-01-31 64 }
e5dfb815181fcb Patrick McHardy 2008-01-31 65
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On Mon, Feb 14, 2022 at 7:19 PM kernel test robot <lkp@intel.com> wrote: > > Hi Willem, > > Thank you for the patch! Perhaps something to improve: > In file included from net/sched/cls_flow.c:24: > In file included from include/net/ip.h:30: > In file included from include/net/route.h:24: > In file included from include/net/inetpeer.h:16: > include/net/ipv6.h:403:30: error: no member named 'ipv6' in 'struct net' > READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) I'll wrap the whole function in IS_ENABLED(CONFIG_IPV6). fl6_sock_lookup is only called from code in .c files that are conditional on CONFIG_IPV6.
diff --git a/include/net/ipv6.h b/include/net/ipv6.h index 3afcb128e064..49b885784298 100644 --- a/include/net/ipv6.h +++ b/include/net/ipv6.h @@ -399,7 +399,8 @@ extern struct static_key_false_deferred ipv6_flowlabel_exclusive; static inline struct ip6_flowlabel *fl6_sock_lookup(struct sock *sk, __be32 label) { - if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key)) + if (static_branch_unlikely(&ipv6_flowlabel_exclusive.key) && + READ_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl)) return __fl6_sock_lookup(sk, label) ? : ERR_PTR(-ENOENT); return NULL; diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h index a4b550380316..6bd7e5a85ce7 100644 --- a/include/net/netns/ipv6.h +++ b/include/net/netns/ipv6.h @@ -77,9 +77,10 @@ struct netns_ipv6 { spinlock_t fib6_gc_lock; unsigned int ip6_rt_gc_expire; unsigned long ip6_rt_last_gc; + unsigned char flowlabel_has_excl; #ifdef CONFIG_IPV6_MULTIPLE_TABLES - unsigned int fib6_rules_require_fldissect; bool fib6_has_custom_rules; + unsigned int fib6_rules_require_fldissect; #ifdef CONFIG_IPV6_SUBTREES unsigned int fib6_routes_require_src; #endif diff --git a/net/ipv6/ip6_flowlabel.c b/net/ipv6/ip6_flowlabel.c index aa673a6a7e43..ceb85c67ce39 100644 --- a/net/ipv6/ip6_flowlabel.c +++ b/net/ipv6/ip6_flowlabel.c @@ -450,8 +450,10 @@ fl_create(struct net *net, struct sock *sk, struct in6_flowlabel_req *freq, err = -EINVAL; goto done; } - if (fl_shared_exclusive(fl) || fl->opt) + if (fl_shared_exclusive(fl) || fl->opt) { + WRITE_ONCE(sock_net(sk)->ipv6.flowlabel_has_excl, 1); static_branch_deferred_inc(&ipv6_flowlabel_exclusive); + } return fl; done: