Hi "Björn,
I love your patch! Yet something to improve:
[auto build test ERROR on 95204c9bfa48d2f4d3bab7df55c1cc823957ff81]
url:
https://github.com/0day-ci/linux/commits/Bj-rn-T-pel/Introduce-bpf_redire...
base: 95204c9bfa48d2f4d3bab7df55c1cc823957ff81
config: x86_64-randconfig-m031-20210120 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
#
https://github.com/0day-ci/linux/commit/419b1341d7980ee57fb10f4306719eef3...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Bj-rn-T-pel/Introduce-bpf_redirect_xsk-helper/20210120-150357
git checkout 419b1341d7980ee57fb10f4306719eef3c1a15f8
# save the attached .config to linux build tree
make W=1 ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from <command-line>:
net/core/filter.c: In function '____bpf_xdp_redirect_xsk':
> net/core/filter.c:4165:35: error: 'struct
netdev_rx_queue' has no member named 'xsk'
4165 | xs =
READ_ONCE(dev->_rx[queue_id].xsk);
| ^
include/linux/compiler_types.h:300:9: note: in definition of macro
'__compiletime_assert'
300 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:320:2: note: in expansion of macro
'_compiletime_assert'
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro
'__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/filter.c:4165:7: note: in expansion of macro 'READ_ONCE'
4165 | xs = READ_ONCE(dev->_rx[queue_id].xsk);
| ^~~~~~~~~
> net/core/filter.c:4165:35: error: 'struct
netdev_rx_queue' has no member named 'xsk'
4165 | xs =
READ_ONCE(dev->_rx[queue_id].xsk);
| ^
include/linux/compiler_types.h:300:9: note: in definition of macro
'__compiletime_assert'
300 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:320:2: note: in expansion of macro
'_compiletime_assert'
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro
'__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/filter.c:4165:7: note: in expansion of macro 'READ_ONCE'
4165 | xs = READ_ONCE(dev->_rx[queue_id].xsk);
| ^~~~~~~~~
> net/core/filter.c:4165:35: error: 'struct
netdev_rx_queue' has no member named 'xsk'
4165 | xs =
READ_ONCE(dev->_rx[queue_id].xsk);
| ^
include/linux/compiler_types.h:300:9: note: in definition of macro
'__compiletime_assert'
300 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:320:2: note: in expansion of macro
'_compiletime_assert'
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro
'__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/filter.c:4165:7: note: in expansion of macro 'READ_ONCE'
4165 | xs = READ_ONCE(dev->_rx[queue_id].xsk);
| ^~~~~~~~~
> net/core/filter.c:4165:35: error: 'struct
netdev_rx_queue' has no member named 'xsk'
4165 | xs =
READ_ONCE(dev->_rx[queue_id].xsk);
| ^
include/linux/compiler_types.h:300:9: note: in definition of macro
'__compiletime_assert'
300 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:320:2: note: in expansion of macro
'_compiletime_assert'
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:21: note: in expansion of macro
'__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/filter.c:4165:7: note: in expansion of macro 'READ_ONCE'
4165 | xs = READ_ONCE(dev->_rx[queue_id].xsk);
| ^~~~~~~~~
> net/core/filter.c:4165:35: error: 'struct
netdev_rx_queue' has no member named 'xsk'
4165 | xs =
READ_ONCE(dev->_rx[queue_id].xsk);
| ^
include/linux/compiler_types.h:300:9: note: in definition of macro
'__compiletime_assert'
300 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:320:2: note: in expansion of macro
'_compiletime_assert'
320 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:2: note: in expansion of macro
'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:2: note: in expansion of macro
'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/core/filter.c:4165:7: note: in expansion of macro 'READ_ONCE'
4165 | xs = READ_ONCE(dev->_rx[queue_id].xsk);
| ^~~~~~~~~
> net/core/filter.c:4165:35: error: 'struct
netdev_rx_queue' has no member named 'xsk'
4165 | xs =
READ_ONCE(dev->_rx[queue_id].xsk);
| ^
include/linux/compiler_types.h:271:13: note: in definition of macro
'__unqual_scalar_typeof'
271 | _Generic((x), \
| ^
include/asm-generic/rwonce.h:50:2: note: in expansion of macro '__READ_ONCE'
50 | __READ_ONCE(x); \
| ^~~~~~~~~~~
net/core/filter.c:4165:7: note: in expansion of macro 'READ_ONCE'
4165 | xs = READ_ONCE(dev->_rx[queue_id].xsk);
| ^~~~~~~~~
In file included from ./arch/x86/include/generated/asm/rwonce.h:1,
from include/linux/compiler.h:246,
from include/linux/export.h:43,
from include/linux/linkage.h:7,
from include/linux/kernel.h:7,
from include/linux/list.h:9,
from include/linux/module.h:12,
from net/core/filter.c:20:
> net/core/filter.c:4165:35: error: 'struct
netdev_rx_queue' has no member named 'xsk'
4165 | xs =
READ_ONCE(dev->_rx[queue_id].xsk);
| ^
include/asm-generic/rwonce.h:44:72: note: in definition of macro '__READ_ONCE'
44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
| ^
net/core/filter.c:4165:7: note: in expansion of macro 'READ_ONCE'
4165 | xs = READ_ONCE(dev->_rx[queue_id].xsk);
| ^~~~~~~~~
vim +4165 net/core/filter.c
4157
4158 BPF_CALL_2(bpf_xdp_redirect_xsk, struct xdp_buff *, xdp, u64, action)
4159 {
4160 struct net_device *dev = xdp->rxq->dev;
4161 u32 queue_id = xdp->rxq->queue_index;
4162 struct bpf_redirect_info *ri;
4163 struct xdp_sock *xs;
4164
4165 xs = READ_ONCE(dev->_rx[queue_id].xsk);
4166 if
(!xs)
4167 return action;
4168
4169 ri = this_cpu_ptr(&bpf_redirect_info);
4170 ri->tgt_type = XDP_REDIR_XSK;
4171 ri->tgt_value = xs;
4172
4173 return XDP_REDIRECT;
4174 }
4175
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org