[nf-next:master 14/14] net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
head:   bcbfcb63a93704140d66f49b6f7d783988f37b4e
commit: bcbfcb63a93704140d66f49b6f7d783988f37b4e [14/14] netfilter: reduce hook array sizes to what is needed
config: i386-randconfig-x002-201749 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
        git checkout bcbfcb63a93704140d66f49b6f7d783988f37b4e
        # save the attached .config to linux build tree
        make ARCH=i386 

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/srcu.h:33:0,
                    from include/linux/notifier.h:16,
                    from include/linux/memory_hotplug.h:7,
                    from include/linux/mmzone.h:780,
                    from include/linux/gfp.h:6,
                    from include/linux/umh.h:4,
                    from include/linux/kmod.h:22,
                    from include/linux/module.h:13,
                    from net/bridge/br_netfilter_hooks.c:17:
   net/bridge/br_netfilter_hooks.c: In function 'br_nf_hook_thresh':
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/rcupdate.h:349:10: note: in definition of macro '__rcu_dereference_check'
     typeof(*p) *________p1 = (typeof(*p) *__force)lockless_dereference(p); \
             ^
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/rcupdate.h:349:36: note: in definition of macro '__rcu_dereference_check'
     typeof(*p) *________p1 = (typeof(*p) *__force)lockless_dereference(p); \
                                       ^
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
   In file included from include/uapi/linux/stddef.h:2:0,
                    from include/linux/stddef.h:5,
                    from include/uapi/linux/posix_types.h:5,
                    from include/uapi/linux/types.h:14,
                    from include/linux/types.h:6,
                    from include/linux/list.h:5,
                    from include/linux/module.h:9,
                    from net/bridge/br_netfilter_hooks.c:17:
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/compiler.h:622:9: note: in definition of macro 'lockless_dereference'
     typeof(p) _________p1 = READ_ONCE(p); \
            ^
   include/linux/rcupdate.h:486:2: note: in expansion of macro '__rcu_dereference_check'
     __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
   In file included from include/uapi/linux/stddef.h:2:0,
                    from include/linux/stddef.h:5,
                    from include/uapi/linux/posix_types.h:5,
                    from include/uapi/linux/types.h:14,
                    from include/linux/types.h:6,
                    from include/linux/list.h:5,
                    from include/linux/module.h:9,
                    from net/bridge/br_netfilter_hooks.c:17:
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/compiler.h:339:17: note: in definition of macro '__READ_ONCE'
     union { typeof(x) __val; char __c[1]; } __u;   \
                    ^
   include/linux/compiler.h:622:26: note: in expansion of macro 'READ_ONCE'
     typeof(p) _________p1 = READ_ONCE(p); \
                             ^~~~~~~~~
   include/linux/rcupdate.h:349:48: note: in expansion of macro 'lockless_dereference'
     typeof(*p) *________p1 = (typeof(*p) *__force)lockless_dereference(p); \
                                                   ^~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:486:2: note: in expansion of macro '__rcu_dereference_check'
     __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/compiler.h:341:22: note: in definition of macro '__READ_ONCE'
      __read_once_size(&(x), __u.__c, sizeof(x));  \
                         ^
   include/linux/compiler.h:622:26: note: in expansion of macro 'READ_ONCE'
     typeof(p) _________p1 = READ_ONCE(p); \
                             ^~~~~~~~~
   include/linux/rcupdate.h:349:48: note: in expansion of macro 'lockless_dereference'
     typeof(*p) *________p1 = (typeof(*p) *__force)lockless_dereference(p); \
                                                   ^~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:486:2: note: in expansion of macro '__rcu_dereference_check'
     __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/compiler.h:341:42: note: in definition of macro '__READ_ONCE'
      __read_once_size(&(x), __u.__c, sizeof(x));  \
                                             ^
   include/linux/compiler.h:622:26: note: in expansion of macro 'READ_ONCE'
     typeof(p) _________p1 = READ_ONCE(p); \
                             ^~~~~~~~~
   include/linux/rcupdate.h:349:48: note: in expansion of macro 'lockless_dereference'
     typeof(*p) *________p1 = (typeof(*p) *__force)lockless_dereference(p); \
                                                   ^~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:486:2: note: in expansion of macro '__rcu_dereference_check'
     __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/compiler.h:343:30: note: in definition of macro '__READ_ONCE'
      __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
                                 ^
   include/linux/compiler.h:622:26: note: in expansion of macro 'READ_ONCE'
     typeof(p) _________p1 = READ_ONCE(p); \
                             ^~~~~~~~~
   include/linux/rcupdate.h:349:48: note: in expansion of macro 'lockless_dereference'
     typeof(*p) *________p1 = (typeof(*p) *__force)lockless_dereference(p); \
                                                   ^~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:486:2: note: in expansion of macro '__rcu_dereference_check'
     __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/compiler.h:343:50: note: in definition of macro '__READ_ONCE'
      __read_once_size_nocheck(&(x), __u.__c, sizeof(x)); \
                                                     ^
   include/linux/compiler.h:622:26: note: in expansion of macro 'READ_ONCE'
     typeof(p) _________p1 = READ_ONCE(p); \
                             ^~~~~~~~~
   include/linux/rcupdate.h:349:48: note: in expansion of macro 'lockless_dereference'
     typeof(*p) *________p1 = (typeof(*p) *__force)lockless_dereference(p); \
                                                   ^~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:486:2: note: in expansion of macro '__rcu_dereference_check'
     __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
   In file included from include/uapi/linux/stddef.h:2:0,
                    from include/linux/stddef.h:5,
                    from include/uapi/linux/posix_types.h:5,
                    from include/uapi/linux/types.h:14,
                    from include/linux/types.h:6,
                    from include/linux/list.h:5,
                    from include/linux/module.h:9,
                    from net/bridge/br_netfilter_hooks.c:17:
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/compiler.h:623:11: note: in definition of macro 'lockless_dereference'
     typeof(*(p)) *___typecheck_p __maybe_unused; \
              ^
   include/linux/rcupdate.h:486:2: note: in expansion of macro '__rcu_dereference_check'
     __rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
     ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~
   In file included from include/linux/srcu.h:33:0,
                    from include/linux/notifier.h:16,
                    from include/linux/memory_hotplug.h:7,
                    from include/linux/mmzone.h:780,
                    from include/linux/gfp.h:6,
                    from include/linux/umh.h:4,
                    from include/linux/kmod.h:22,
                    from include/linux/module.h:13,
                    from net/bridge/br_netfilter_hooks.c:17:
>> net/bridge/br_netfilter_hooks.c:994:30: error: 'struct netns_nf' has no member named 'hooks_bridge'; did you mean 'hooks_ipv4'?
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
                                 ^
   include/linux/rcupdate.h:352:12: note: in definition of macro '__rcu_dereference_check'
     ((typeof(*p) __force __kernel *)(________p1)); \
               ^
   include/linux/rcupdate.h:545:28: note: in expansion of macro 'rcu_dereference_check'
    #define rcu_dereference(p) rcu_dereference_check(p, 0)
                               ^~~~~~~~~~~~~~~~~~~~~
>> net/bridge/br_netfilter_hooks.c:994:6: note: in expansion of macro 'rcu_dereference'
     e = rcu_dereference(net->nf.hooks_bridge[hook]);
         ^~~~~~~~~~~~~~~

vim +994 net/bridge/br_netfilter_hooks.c

5f6c253eb Florian Westphal  2016-02-25   975  
c5136b15e Florian Westphal  2016-09-21   976  /* recursively invokes nf_hook_slow (again), skipping already-called
c5136b15e Florian Westphal  2016-09-21   977   * hooks (< NF_BR_PRI_BRNF).
c5136b15e Florian Westphal  2016-09-21   978   *
c5136b15e Florian Westphal  2016-09-21   979   * Called with rcu read lock held.
c5136b15e Florian Westphal  2016-09-21   980   */
c5136b15e Florian Westphal  2016-09-21   981  int br_nf_hook_thresh(unsigned int hook, struct net *net,
c5136b15e Florian Westphal  2016-09-21   982  		      struct sock *sk, struct sk_buff *skb,
c5136b15e Florian Westphal  2016-09-21   983  		      struct net_device *indev,
c5136b15e Florian Westphal  2016-09-21   984  		      struct net_device *outdev,
c5136b15e Florian Westphal  2016-09-21   985  		      int (*okfn)(struct net *, struct sock *,
c5136b15e Florian Westphal  2016-09-21   986  				  struct sk_buff *))
c5136b15e Florian Westphal  2016-09-21   987  {
960632ece Aaron Conole      2017-08-24   988  	const struct nf_hook_entries *e;
c5136b15e Florian Westphal  2016-09-21   989  	struct nf_hook_state state;
960632ece Aaron Conole      2017-08-24   990  	struct nf_hook_ops **ops;
960632ece Aaron Conole      2017-08-24   991  	unsigned int i;
c5136b15e Florian Westphal  2016-09-21   992  	int ret;
c5136b15e Florian Westphal  2016-09-21   993  
e02538c64 Florian Westphal  2017-12-03  @994  	e = rcu_dereference(net->nf.hooks_bridge[hook]);
960632ece Aaron Conole      2017-08-24   995  	if (!e)
c5136b15e Florian Westphal  2016-09-21   996  		return okfn(net, sk, skb);
c5136b15e Florian Westphal  2016-09-21   997  
960632ece Aaron Conole      2017-08-24   998  	ops = nf_hook_entries_get_hook_ops(e);
960632ece Aaron Conole      2017-08-24   999  	for (i = 0; i < e->num_hook_entries &&
960632ece Aaron Conole      2017-08-24  1000  	      ops[i]->priority <= NF_BR_PRI_BRNF; i++)
960632ece Aaron Conole      2017-08-24  1001  		;
960632ece Aaron Conole      2017-08-24  1002  
01886bd91 Pablo Neira Ayuso 2016-11-03  1003  	nf_hook_state_init(&state, hook, NFPROTO_BRIDGE, indev, outdev,
1610a73c4 Pablo Neira Ayuso 2016-11-03  1004  			   sk, net, okfn);
c5136b15e Florian Westphal  2016-09-21  1005  
960632ece Aaron Conole      2017-08-24  1006  	ret = nf_hook_slow(skb, &state, e, i);
c5136b15e Florian Westphal  2016-09-21  1007  	if (ret == 1)
c5136b15e Florian Westphal  2016-09-21  1008  		ret = okfn(net, sk, skb);
c5136b15e Florian Westphal  2016-09-21  1009  
c5136b15e Florian Westphal  2016-09-21  1010  	return ret;
c5136b15e Florian Westphal  2016-09-21  1011  }
c5136b15e Florian Westphal  2016-09-21  1012  

:::::: The code at line 994 was first introduced by commit
:::::: e02538c6458b54c135cb8626c05e989b16550cb0 netfilter: reduce size of hook entry point locations

:::::: TO: Florian Westphal <fw@xxxxxxxxx>
:::::: CC: Pablo Neira Ayuso <pablo@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


[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux