Hi Thierry,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on nf/master]
[also build test WARNING on v4.16 next-20180403]
[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/Thierry-Du-Tre/netfilter-add-NAT-support-for-shifted-portmap-ranges/20180404-074845
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf.git master
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

>> net/openvswitch/conntrack.c:766:57: sparse: incorrect type in argument 2 
>> (different base types) @@    expected struct nf_nat_range2 const *range @@   
>>  got truct nf_nat_range2 const *range @@
   net/openvswitch/conntrack.c:766:57:    expected struct nf_nat_range2 const 
*range
   net/openvswitch/conntrack.c:766:57:    got struct nf_nat_range const *range
   net/openvswitch/conntrack.c: In function 'ovs_ct_nat_execute':
   net/openvswitch/conntrack.c:766:29: error: passing argument 2 of 
'nf_nat_setup_info' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
        ? nf_nat_setup_info(ct, range, maniptype)
                                ^~~~~
   In file included from include/net/netfilter/nf_nat_core.h:6:0,
                    from net/openvswitch/conntrack.c:29:
   include/net/netfilter/nf_nat.h:41:14: note: expected 'const struct 
nf_nat_range2 *' but argument is of type 'const struct nf_nat_range *'
    unsigned int nf_nat_setup_info(struct nf_conn *ct,
                 ^~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +766 net/openvswitch/conntrack.c

7f8a436e Joe Stringer        2015-08-26  705  
05752523 Jarno Rajahalme     2016-03-10  706  #ifdef CONFIG_NF_NAT_NEEDED
05752523 Jarno Rajahalme     2016-03-10  707  /* Modelled after 
nf_nat_ipv[46]_fn().
05752523 Jarno Rajahalme     2016-03-10  708   * range is only used for new, 
uninitialized NAT state.
05752523 Jarno Rajahalme     2016-03-10  709   * Returns either NF_ACCEPT or 
NF_DROP.
05752523 Jarno Rajahalme     2016-03-10  710   */
05752523 Jarno Rajahalme     2016-03-10  711  static int 
ovs_ct_nat_execute(struct sk_buff *skb, struct nf_conn *ct,
05752523 Jarno Rajahalme     2016-03-10  712                          enum 
ip_conntrack_info ctinfo,
05752523 Jarno Rajahalme     2016-03-10  713                          const 
struct nf_nat_range *range,
05752523 Jarno Rajahalme     2016-03-10  714                          enum 
nf_nat_manip_type maniptype)
05752523 Jarno Rajahalme     2016-03-10  715  {
05752523 Jarno Rajahalme     2016-03-10  716    int hooknum, nh_off, err = 
NF_ACCEPT;
05752523 Jarno Rajahalme     2016-03-10  717  
05752523 Jarno Rajahalme     2016-03-10  718    nh_off = 
skb_network_offset(skb);
75f01a4c Lance Richardson    2017-01-12  719    skb_pull_rcsum(skb, nh_off);
05752523 Jarno Rajahalme     2016-03-10  720  
05752523 Jarno Rajahalme     2016-03-10  721    /* See HOOK2MANIP(). */
05752523 Jarno Rajahalme     2016-03-10  722    if (maniptype == 
NF_NAT_MANIP_SRC)
05752523 Jarno Rajahalme     2016-03-10  723            hooknum = 
NF_INET_LOCAL_IN; /* Source NAT */
05752523 Jarno Rajahalme     2016-03-10  724    else
05752523 Jarno Rajahalme     2016-03-10  725            hooknum = 
NF_INET_LOCAL_OUT; /* Destination NAT */
05752523 Jarno Rajahalme     2016-03-10  726  
05752523 Jarno Rajahalme     2016-03-10  727    switch (ctinfo) {
05752523 Jarno Rajahalme     2016-03-10  728    case IP_CT_RELATED:
05752523 Jarno Rajahalme     2016-03-10  729    case IP_CT_RELATED_REPLY:
99b7248e Arnd Bergmann       2016-03-18  730            if 
(IS_ENABLED(CONFIG_NF_NAT_IPV4) &&
99b7248e Arnd Bergmann       2016-03-18  731                skb->protocol == 
htons(ETH_P_IP) &&
05752523 Jarno Rajahalme     2016-03-10  732                
ip_hdr(skb)->protocol == IPPROTO_ICMP) {
05752523 Jarno Rajahalme     2016-03-10  733                    if 
(!nf_nat_icmp_reply_translation(skb, ct, ctinfo,
05752523 Jarno Rajahalme     2016-03-10  734                                    
                   hooknum))
05752523 Jarno Rajahalme     2016-03-10  735                            err = 
NF_DROP;
05752523 Jarno Rajahalme     2016-03-10  736                    goto push;
99b7248e Arnd Bergmann       2016-03-18  737            } else if 
(IS_ENABLED(CONFIG_NF_NAT_IPV6) &&
99b7248e Arnd Bergmann       2016-03-18  738                       
skb->protocol == htons(ETH_P_IPV6)) {
05752523 Jarno Rajahalme     2016-03-10  739                    __be16 frag_off;
05752523 Jarno Rajahalme     2016-03-10  740                    u8 nexthdr = 
ipv6_hdr(skb)->nexthdr;
05752523 Jarno Rajahalme     2016-03-10  741                    int hdrlen = 
ipv6_skip_exthdr(skb,
05752523 Jarno Rajahalme     2016-03-10  742                                    
              sizeof(struct ipv6hdr),
05752523 Jarno Rajahalme     2016-03-10  743                                    
              &nexthdr, &frag_off);
05752523 Jarno Rajahalme     2016-03-10  744  
05752523 Jarno Rajahalme     2016-03-10  745                    if (hdrlen >= 0 
&& nexthdr == IPPROTO_ICMPV6) {
05752523 Jarno Rajahalme     2016-03-10  746                            if 
(!nf_nat_icmpv6_reply_translation(skb, ct,
05752523 Jarno Rajahalme     2016-03-10  747                                    
                             ctinfo,
05752523 Jarno Rajahalme     2016-03-10  748                                    
                             hooknum,
05752523 Jarno Rajahalme     2016-03-10  749                                    
                             hdrlen))
05752523 Jarno Rajahalme     2016-03-10  750                                    
err = NF_DROP;
05752523 Jarno Rajahalme     2016-03-10  751                            goto 
push;
05752523 Jarno Rajahalme     2016-03-10  752                    }
05752523 Jarno Rajahalme     2016-03-10  753            }
05752523 Jarno Rajahalme     2016-03-10  754            /* Non-ICMP, fall thru 
to initialize if needed. */
279badc2 Gustavo A. R. Silva 2017-10-19  755            /* fall through */
05752523 Jarno Rajahalme     2016-03-10  756    case IP_CT_NEW:
05752523 Jarno Rajahalme     2016-03-10  757            /* Seen it before?  
This can happen for loopback, retrans,
05752523 Jarno Rajahalme     2016-03-10  758             * or local packets.
05752523 Jarno Rajahalme     2016-03-10  759             */
05752523 Jarno Rajahalme     2016-03-10  760            if 
(!nf_nat_initialized(ct, maniptype)) {
05752523 Jarno Rajahalme     2016-03-10  761                    /* Initialize 
according to the NAT action. */
05752523 Jarno Rajahalme     2016-03-10  762                    err = (range && 
range->flags & NF_NAT_RANGE_MAP_IPS)
05752523 Jarno Rajahalme     2016-03-10  763                            /* 
Action is set up to establish a new
05752523 Jarno Rajahalme     2016-03-10  764                             * 
mapping.
05752523 Jarno Rajahalme     2016-03-10  765                             */
05752523 Jarno Rajahalme     2016-03-10 @766                            ? 
nf_nat_setup_info(ct, range, maniptype)
05752523 Jarno Rajahalme     2016-03-10  767                            : 
nf_nat_alloc_null_binding(ct, hooknum);
05752523 Jarno Rajahalme     2016-03-10  768                    if (err != 
NF_ACCEPT)
05752523 Jarno Rajahalme     2016-03-10  769                            goto 
push;
05752523 Jarno Rajahalme     2016-03-10  770            }
05752523 Jarno Rajahalme     2016-03-10  771            break;
05752523 Jarno Rajahalme     2016-03-10  772  
05752523 Jarno Rajahalme     2016-03-10  773    case IP_CT_ESTABLISHED:
05752523 Jarno Rajahalme     2016-03-10  774    case IP_CT_ESTABLISHED_REPLY:
05752523 Jarno Rajahalme     2016-03-10  775            break;
05752523 Jarno Rajahalme     2016-03-10  776  
05752523 Jarno Rajahalme     2016-03-10  777    default:
05752523 Jarno Rajahalme     2016-03-10  778            err = NF_DROP;
05752523 Jarno Rajahalme     2016-03-10  779            goto push;
05752523 Jarno Rajahalme     2016-03-10  780    }
05752523 Jarno Rajahalme     2016-03-10  781  
05752523 Jarno Rajahalme     2016-03-10  782    err = nf_nat_packet(ct, ctinfo, 
hooknum, skb);
05752523 Jarno Rajahalme     2016-03-10  783  push:
05752523 Jarno Rajahalme     2016-03-10  784    skb_push(skb, nh_off);
75f01a4c Lance Richardson    2017-01-12  785    skb_postpush_rcsum(skb, 
skb->data, nh_off);
05752523 Jarno Rajahalme     2016-03-10  786  
05752523 Jarno Rajahalme     2016-03-10  787    return err;
05752523 Jarno Rajahalme     2016-03-10  788  }
05752523 Jarno Rajahalme     2016-03-10  789  

:::::: The code at line 766 was first introduced by commit
:::::: 05752523e56502cd9975aec0a2ded465d51a71f3 openvswitch: Interface with NAT.

:::::: TO: Jarno Rajahalme <[email protected]>
:::::: CC: Pablo Neira Ayuso <[email protected]>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to