Re: [PATCH nf-next,v2 2/3] netfilter: add struct nf_nat_hook and use it

2018-05-16 Thread kbuild test robot
Hi Pablo,

I love your patch! Yet something to improve:

[auto build test ERROR on nf-next/master]
[also build test ERROR on v4.17-rc5]
[cannot apply to nf/master next-20180516]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Pablo-Neira-Ayuso/netfilter-add-struct-nf_ct_hook-and-use-it/20180515-215248
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
config: i386-randconfig-n0-201819 (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 errors (new ones prefixed by >>):

   In file included from include/net/netfilter/nf_conntrack_tuple.h:14:0,
from include/linux/netfilter/nf_conntrack_proto_gre.h:14,
from include/net/netfilter/nf_conntrack.h:25,
from include/net/netfilter/nf_nat_core.h:5,
from net/xfrm/xfrm_policy.c:36:
   include/linux/netfilter/x_tables.h: In function 'xt_net':
>> include/linux/netfilter/x_tables.h:46:19: error: dereferencing pointer to 
>> incomplete type 'const struct nf_hook_state'
 return par->state->net;
  ^~
   In file included from include/net/netfilter/nf_conntrack_tuple.h:14:0,
from include/linux/netfilter/nf_conntrack_proto_gre.h:14,
from include/net/netfilter/nf_conntrack.h:25,
from include/net/netfilter/nf_nat_core.h:5,
from net/xfrm/xfrm_policy.c:36:
   include/linux/netfilter/x_tables.h: At top level:
>> include/linux/netfilter/x_tables.h:450:64: error: unknown type name 
>> 'nf_hookfn'
struct nf_hook_ops *xt_hook_ops_alloc(const struct xt_table *, nf_hookfn *);
   ^
   In file included from include/linux/netfilter/nf_conntrack_proto_gre.h:14:0,
from include/net/netfilter/nf_conntrack.h:25,
from include/net/netfilter/nf_nat_core.h:5,
from net/xfrm/xfrm_policy.c:36:
   include/net/netfilter/nf_conntrack_tuple.h: In function 
'__nf_ct_tuple_src_equal':
>> include/net/netfilter/nf_conntrack_tuple.h:127:10: error: implicit 
>> declaration of function 'nf_inet_addr_cmp'; did you mean 'inet_addr_type'? 
>> [-Werror=implicit-function-declaration]
 return (nf_inet_addr_cmp(>src.u3, >src.u3) &&
 ^~~~
 inet_addr_type
   In file included from include/net/netfilter/nf_nat_core.h:5:0,
from net/xfrm/xfrm_policy.c:36:
   include/net/netfilter/nf_conntrack.h: At top level:
>> include/net/netfilter/nf_conntrack.h:59:22: error: field 'ct_general' has 
>> incomplete type
 struct nf_conntrack ct_general;
 ^~
   include/net/netfilter/nf_conntrack.h: In function 'nf_ct_get':
>> include/net/netfilter/nf_conntrack.h:148:15: error: 'const struct sk_buff' 
>> has no member named '_nfct'
 *ctinfo = skb->_nfct & NFCT_INFOMASK;
  ^~
   include/net/netfilter/nf_conntrack.h:150:31: error: 'const struct sk_buff' 
has no member named '_nfct'
 return (struct nf_conn *)(skb->_nfct & NFCT_PTRMASK);
  ^~
   include/net/netfilter/nf_conntrack.h: In function 'nf_ct_put':
>> include/net/netfilter/nf_conntrack.h:157:2: error: implicit declaration of 
>> function 'nf_conntrack_put'; did you mean 'nf_ct_put'? 
>> [-Werror=implicit-function-declaration]
 nf_conntrack_put(>ct_general);
 ^~~~
 nf_ct_put
   include/net/netfilter/nf_conntrack.h: In function 'nf_ct_set':
>> include/net/netfilter/nf_conntrack.h:316:5: error: 'struct sk_buff' has no 
>> member named '_nfct'
 skb->_nfct = (unsigned long)ct | info;
^~
   cc1: some warnings being treated as errors

vim +148 include/net/netfilter/nf_conntrack.h

f8eb24a89a Patrick McHardy2006-11-29   49  
ea781f197d Eric Dumazet   2009-03-25   50  struct nf_conn {
f330a7fdbe Florian Westphal   2016-08-25   51   /* Usage count in here 
is 1 for hash table, 1 per skb,
b476b72a0f Jesper Dangaard Brouer 2014-03-03   52* plus 1 for any 
connection(s) we are `master' for
b476b72a0f Jesper Dangaard Brouer 2014-03-03   53*
a9e419dc7b Florian Westphal   2017-01-23   54* Hint, SKB address 
this struct and refcnt via skb->_nfct and
b476b72a0f Jesper Dangaard Brouer 2014-03-03   55* helpers 
nf_conntrack_get() and nf_conntrack_put().
b476b72a0f Jesper Dangaard Brouer 2014-03-03   56* Helper nf_ct_put() 
equals nf_conntrack_put() by dec refcnt,
b476b72a0f Jesper Dangaard Brouer 2014-03-03   57* beware nf_ct_get() 
is different and don't inc refcnt.
b476b72a0f Jesper Dangaard Brouer 2014-03-03   58*/
9fb9cbb108 Yasuyuki Kozakai   2005-11-09  @59   struct nf_conntrack 

Re: [PATCH nf-next,v2 2/3] netfilter: add struct nf_nat_hook and use it

2018-05-16 Thread kbuild test robot
Hi Pablo,

I love your patch! Yet something to improve:

[auto build test ERROR on nf-next/master]
[also build test ERROR on v4.17-rc5]
[cannot apply to nf/master next-20180516]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:
https://github.com/0day-ci/linux/commits/Pablo-Neira-Ayuso/netfilter-add-struct-nf_ct_hook-and-use-it/20180515-215248
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
config: i386-randconfig-s1-201819 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
# save the attached .config to linux build tree
make ARCH=i386 

All errors (new ones prefixed by >>):

   In file included from include/net/netfilter/nf_conntrack_tuple.h:14:0,
from include/linux/netfilter/nf_conntrack_proto_gre.h:14,
from include/net/netfilter/nf_conntrack.h:25,
from include/net/netfilter/nf_nat_core.h:5,
from net/xfrm/xfrm_policy.c:36:
   include/linux/netfilter/x_tables.h: In function 'xt_net':
   include/linux/netfilter/x_tables.h:46:19: error: dereferencing pointer to 
incomplete type 'const struct nf_hook_state'
 return par->state->net;
  ^~
   In file included from include/net/netfilter/nf_conntrack_tuple.h:14:0,
from include/linux/netfilter/nf_conntrack_proto_gre.h:14,
from include/net/netfilter/nf_conntrack.h:25,
from include/net/netfilter/nf_nat_core.h:5,
from net/xfrm/xfrm_policy.c:36:
   include/linux/netfilter/x_tables.h: At top level:
   include/linux/netfilter/x_tables.h:450:64: error: unknown type name 
'nf_hookfn'
struct nf_hook_ops *xt_hook_ops_alloc(const struct xt_table *, nf_hookfn *);
   ^
   In file included from include/linux/netfilter/nf_conntrack_proto_gre.h:14:0,
from include/net/netfilter/nf_conntrack.h:25,
from include/net/netfilter/nf_nat_core.h:5,
from net/xfrm/xfrm_policy.c:36:
   include/net/netfilter/nf_conntrack_tuple.h: In function 
'__nf_ct_tuple_src_equal':
>> include/net/netfilter/nf_conntrack_tuple.h:127:10: error: implicit 
>> declaration of function 'nf_inet_addr_cmp' 
>> [-Werror=implicit-function-declaration]
 return (nf_inet_addr_cmp(>src.u3, >src.u3) &&
 ^~~~
   In file included from include/net/netfilter/nf_nat_core.h:5:0,
from net/xfrm/xfrm_policy.c:36:
   include/net/netfilter/nf_conntrack.h: At top level:
   include/net/netfilter/nf_conntrack.h:59:22: error: field 'ct_general' has 
incomplete type
 struct nf_conntrack ct_general;
 ^~
   include/net/netfilter/nf_conntrack.h: In function 'nf_ct_get':
   include/net/netfilter/nf_conntrack.h:148:15: error: 'const struct sk_buff' 
has no member named '_nfct'
 *ctinfo = skb->_nfct & NFCT_INFOMASK;
  ^~
   include/net/netfilter/nf_conntrack.h:150:31: error: 'const struct sk_buff' 
has no member named '_nfct'
 return (struct nf_conn *)(skb->_nfct & NFCT_PTRMASK);
  ^~
   include/net/netfilter/nf_conntrack.h: In function 'nf_ct_put':
>> include/net/netfilter/nf_conntrack.h:157:2: error: implicit declaration of 
>> function 'nf_conntrack_put' [-Werror=implicit-function-declaration]
 nf_conntrack_put(>ct_general);
 ^~~~
   include/net/netfilter/nf_conntrack.h: In function 'nf_ct_set':
   include/net/netfilter/nf_conntrack.h:316:5: error: 'struct sk_buff' has no 
member named '_nfct'
 skb->_nfct = (unsigned long)ct | info;
^~
   cc1: some warnings being treated as errors

vim +/nf_inet_addr_cmp +127 include/net/netfilter/nf_conntrack_tuple.h

9fb9cbb1 Yasuyuki Kozakai 2005-11-09  123  
5f2b4c90 Jan Engelhardt   2008-04-14  124  static inline bool 
__nf_ct_tuple_src_equal(const struct nf_conntrack_tuple *t1,
9fb9cbb1 Yasuyuki Kozakai 2005-11-09  125   
   const struct nf_conntrack_tuple *t2)
9fb9cbb1 Yasuyuki Kozakai 2005-11-09  126  { 
b8beedd2 Patrick McHardy  2008-03-25 @127   return 
(nf_inet_addr_cmp(>src.u3, >src.u3) &&
9fb9cbb1 Yasuyuki Kozakai 2005-11-09  128   t1->src.u.all == 
t2->src.u.all &&
380517de Patrick McHardy  2008-01-31  129   t1->src.l3num == 
t2->src.l3num);
9fb9cbb1 Yasuyuki Kozakai 2005-11-09  130  }
9fb9cbb1 Yasuyuki Kozakai 2005-11-09  131  

:: The code at line 127 was first introduced by commit
:: b8beedd25d3913d45b8330a08ab88fdf90eb54b8 [NETFILTER]: Add 
nf_inet_addr_cmp()

:: TO: Patrick McHardy 
:: CC: David S. Miller 

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel