[l1k:nft_egress_v5 4/5] net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?

From: kernel test robot
Date: Thu Sep 30 2021 - 08:37:25 EST


tree: https://github.com/l1k/linux nft_egress_v5
head: aa103bda2811c502faeacc31ee47d807be2b9d91
commit: 6e373c45e90e9502ca92df0b9c42fe592b80e649 [4/5] netfilter: Introduce egress hook
config: h8300-randconfig-r016-20210930 (attached as .config)
compiler: h8300-linux-gcc (GCC) 11.2.0
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/l1k/linux/commit/6e373c45e90e9502ca92df0b9c42fe592b80e649
git remote add l1k https://github.com/l1k/linux
git fetch --no-tags l1k nft_egress_v5
git checkout 6e373c45e90e9502ca92df0b9c42fe592b80e649
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=h8300 SHELL=/bin/bash net/netfilter/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/module.h:12,
from net/netfilter/nfnetlink_hook.c:8:
include/linux/scatterlist.h: In function 'sg_set_buf':
include/asm-generic/page.h:89:51: warning: ordered comparison of pointer with null pointer [-Wextra]
89 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \
| ^~
include/linux/compiler.h:78:45: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:9: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:17: note: in expansion of macro 'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
In file included from include/linux/rbtree.h:24,
from include/linux/mm_types.h:10,
from include/linux/buildid.h:5,
from include/linux/module.h:14,
from net/netfilter/nfnetlink_hook.c:8:
net/netfilter/nfnetlink_hook.c: In function 'nfnl_hook_entries_head':
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/rcupdate.h:389:17: note: in definition of macro '__rcu_dereference_check'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/rcupdate.h:389:43: note: in definition of macro '__rcu_dereference_check'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
In file included from <command-line>:
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:302:23: note: in definition of macro '__compiletime_assert'
302 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:389:55: note: in expansion of macro 'READ_ONCE'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^~~~~~~~~
include/linux/rcupdate.h:528:9: note: in expansion of macro '__rcu_dereference_check'
528 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:302:23: note: in definition of macro '__compiletime_assert'
302 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:389:55: note: in expansion of macro 'READ_ONCE'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^~~~~~~~~
include/linux/rcupdate.h:528:9: note: in expansion of macro '__rcu_dereference_check'
528 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:302:23: note: in definition of macro '__compiletime_assert'
302 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:389:55: note: in expansion of macro 'READ_ONCE'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^~~~~~~~~
include/linux/rcupdate.h:528:9: note: in expansion of macro '__rcu_dereference_check'
528 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:302:23: note: in definition of macro '__compiletime_assert'
302 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:28: note: in expansion of macro '__native_word'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:389:55: note: in expansion of macro 'READ_ONCE'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^~~~~~~~~
include/linux/rcupdate.h:528:9: note: in expansion of macro '__rcu_dereference_check'
528 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:302:23: note: in definition of macro '__compiletime_assert'
302 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler_types.h:322:9: note: in expansion of macro '_compiletime_assert'
322 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:36:9: note: in expansion of macro 'compiletime_assert'
36 | compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
| ^~~~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:49:9: note: in expansion of macro 'compiletime_assert_rwonce_type'
49 | compiletime_assert_rwonce_type(x); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:389:55: note: in expansion of macro 'READ_ONCE'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^~~~~~~~~
include/linux/rcupdate.h:528:9: note: in expansion of macro '__rcu_dereference_check'
528 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/compiler_types.h:279:27: note: in definition of macro '__unqual_scalar_typeof'
279 | _Generic((x), \
| ^
include/asm-generic/rwonce.h:50:9: note: in expansion of macro '__READ_ONCE'
50 | __READ_ONCE(x); \
| ^~~~~~~~~~~
include/linux/rcupdate.h:389:55: note: in expansion of macro 'READ_ONCE'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^~~~~~~~~
include/linux/rcupdate.h:528:9: note: in expansion of macro '__rcu_dereference_check'
528 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
In file included from ./arch/h8300/include/generated/asm/rwonce.h:1,
from include/linux/compiler.h:266,
from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/module.h:12,
from net/netfilter/nfnetlink_hook.c:8:
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/asm-generic/rwonce.h:44:73: note: in definition of macro '__READ_ONCE'
44 | #define __READ_ONCE(x) (*(const volatile __unqual_scalar_typeof(x) *)&(x))
| ^
include/linux/rcupdate.h:389:55: note: in expansion of macro 'READ_ONCE'
389 | typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
| ^~~~~~~~~
include/linux/rcupdate.h:528:9: note: in expansion of macro '__rcu_dereference_check'
528 | __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
| ^~~~~~~~~~~~~~~~~~~~~~~
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~
In file included from include/linux/rbtree.h:24,
from include/linux/mm_types.h:10,
from include/linux/buildid.h:5,
from include/linux/module.h:14,
from net/netfilter/nfnetlink_hook.c:8:
>> net/netfilter/nfnetlink_hook.c:242:56: error: 'struct net_device' has no member named 'nf_hooks_ingress'; did you mean 'nf_hooks_egress'?
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~~
include/linux/rcupdate.h:392:19: note: in definition of macro '__rcu_dereference_check'
392 | ((typeof(*p) __force __kernel *)(________p1)); \
| ^
include/linux/rcupdate.h:596:28: note: in expansion of macro 'rcu_dereference_check'
596 | #define rcu_dereference(p) rcu_dereference_check(p, 0)
| ^~~~~~~~~~~~~~~~~~~~~
net/netfilter/nfnetlink_hook.c:242:32: note: in expansion of macro 'rcu_dereference'
242 | return rcu_dereference(netdev->nf_hooks_ingress);
| ^~~~~~~~~~~~~~~


vim +242 net/netfilter/nfnetlink_hook.c

191
192 switch (pf) {
193 case NFPROTO_IPV4:
194 if (hook >= ARRAY_SIZE(net->nf.hooks_ipv4))
195 return ERR_PTR(-EINVAL);
196 hook_head = rcu_dereference(net->nf.hooks_ipv4[hook]);
197 break;
198 case NFPROTO_IPV6:
199 if (hook >= ARRAY_SIZE(net->nf.hooks_ipv6))
200 return ERR_PTR(-EINVAL);
201 hook_head = rcu_dereference(net->nf.hooks_ipv6[hook]);
202 break;
203 case NFPROTO_ARP:
204 #ifdef CONFIG_NETFILTER_FAMILY_ARP
205 if (hook >= ARRAY_SIZE(net->nf.hooks_arp))
206 return ERR_PTR(-EINVAL);
207 hook_head = rcu_dereference(net->nf.hooks_arp[hook]);
208 #endif
209 break;
210 case NFPROTO_BRIDGE:
211 #ifdef CONFIG_NETFILTER_FAMILY_BRIDGE
212 if (hook >= ARRAY_SIZE(net->nf.hooks_bridge))
213 return ERR_PTR(-EINVAL);
214 hook_head = rcu_dereference(net->nf.hooks_bridge[hook]);
215 #endif
216 break;
217 #if IS_ENABLED(CONFIG_DECNET)
218 case NFPROTO_DECNET:
219 if (hook >= ARRAY_SIZE(net->nf.hooks_decnet))
220 return ERR_PTR(-EINVAL);
221 hook_head = rcu_dereference(net->nf.hooks_decnet[hook]);
222 break;
223 #endif
224 #if defined(CONFIG_NETFILTER_INGRESS) || defined(CONFIG_NETFILTER_EGRESS)
225 case NFPROTO_NETDEV:
226 if (hook >= NF_NETDEV_NUMHOOKS)
227 return ERR_PTR(-EOPNOTSUPP);
228
229 if (!dev)
230 return ERR_PTR(-ENODEV);
231
232 netdev = dev_get_by_name_rcu(net, dev);
233 if (!netdev)
234 return ERR_PTR(-ENODEV);
235
236 #ifdef CONFIG_NETFILTER_INGRESS
237 if (hook == NF_NETDEV_INGRESS)
238 return rcu_dereference(netdev->nf_hooks_ingress);
239 #endif
240 #ifdef CONFIG_NETFILTER_EGRESS
241 if (hook == NF_NETDEV_EGRESS)
> 242 return rcu_dereference(netdev->nf_hooks_ingress);
243 #endif
244 fallthrough;
245 #endif
246 default:
247 return ERR_PTR(-EPROTONOSUPPORT);
248 }
249
250 return hook_head;
251 }
252

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip