Hi Andreas,

[auto build test ERROR on net-next/master]
[also build test ERROR on v4.10-rc5 next-20170124]
[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/Andreas-Schultz/simple-gtp-improvements/20170125-051754
config: i386-allmodconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

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

   drivers/net/gtp.c: In function 'gtp_newlink':
>> drivers/net/gtp.c:677:8: error: too many arguments to function 
>> 'gtp_encap_enable'
     err = gtp_encap_enable(dev, gtp, fd0, fd1, src_net);
           ^~~~~~~~~~~~~~~~
   drivers/net/gtp.c:659:12: note: declared here
    static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
               ^~~~~~~~~~~~~~~~
   drivers/net/gtp.c: At top level:
>> drivers/net/gtp.c:822:12: error: conflicting types for 'gtp_encap_enable'
    static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
               ^~~~~~~~~~~~~~~~
   drivers/net/gtp.c:659:12: note: previous declaration of 'gtp_encap_enable' 
was here
    static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
               ^~~~~~~~~~~~~~~~
>> drivers/net/gtp.c:659:12: warning: 'gtp_encap_enable' used but never defined
   drivers/net/gtp.c:822:12: warning: 'gtp_encap_enable' defined but not used 
[-Wunused-function]
    static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
               ^~~~~~~~~~~~~~~~

vim +/gtp_encap_enable +677 drivers/net/gtp.c

459aa660 Pablo Neira     2016-05-09  653                                  
sizeof(struct udphdr) +
459aa660 Pablo Neira     2016-05-09  654                                  
sizeof(struct gtp0_header);
459aa660 Pablo Neira     2016-05-09  655  }
459aa660 Pablo Neira     2016-05-09  656  
459aa660 Pablo Neira     2016-05-09  657  static int gtp_hashtable_new(struct 
gtp_dev *gtp, int hsize);
459aa660 Pablo Neira     2016-05-09  658  static void gtp_hashtable_free(struct 
gtp_dev *gtp);
459aa660 Pablo Neira     2016-05-09 @659  static int gtp_encap_enable(struct 
net_device *dev, struct gtp_dev *gtp,
0e9ed139 Andreas Schultz 2017-01-24  660                            int 
fd_gtp0, int fd_gtp1);
459aa660 Pablo Neira     2016-05-09  661  
459aa660 Pablo Neira     2016-05-09  662  static int gtp_newlink(struct net 
*src_net, struct net_device *dev,
459aa660 Pablo Neira     2016-05-09  663                        struct nlattr 
*tb[], struct nlattr *data[])
459aa660 Pablo Neira     2016-05-09  664  {
459aa660 Pablo Neira     2016-05-09  665        int hashsize, err, fd0, fd1;
459aa660 Pablo Neira     2016-05-09  666        struct gtp_dev *gtp;
459aa660 Pablo Neira     2016-05-09  667        struct gtp_net *gn;
459aa660 Pablo Neira     2016-05-09  668  
459aa660 Pablo Neira     2016-05-09  669        if (!data[IFLA_GTP_FD0] || 
!data[IFLA_GTP_FD1])
459aa660 Pablo Neira     2016-05-09  670                return -EINVAL;
459aa660 Pablo Neira     2016-05-09  671  
459aa660 Pablo Neira     2016-05-09  672        gtp = netdev_priv(dev);
459aa660 Pablo Neira     2016-05-09  673  
459aa660 Pablo Neira     2016-05-09  674        fd0 = 
nla_get_u32(data[IFLA_GTP_FD0]);
459aa660 Pablo Neira     2016-05-09  675        fd1 = 
nla_get_u32(data[IFLA_GTP_FD1]);
459aa660 Pablo Neira     2016-05-09  676  
459aa660 Pablo Neira     2016-05-09 @677        err = gtp_encap_enable(dev, 
gtp, fd0, fd1, src_net);
459aa660 Pablo Neira     2016-05-09  678        if (err < 0)
459aa660 Pablo Neira     2016-05-09  679                goto out_err;
459aa660 Pablo Neira     2016-05-09  680  
459aa660 Pablo Neira     2016-05-09  681        if 
(!data[IFLA_GTP_PDP_HASHSIZE])
459aa660 Pablo Neira     2016-05-09  682                hashsize = 1024;
459aa660 Pablo Neira     2016-05-09  683        else
459aa660 Pablo Neira     2016-05-09  684                hashsize = 
nla_get_u32(data[IFLA_GTP_PDP_HASHSIZE]);
459aa660 Pablo Neira     2016-05-09  685  
459aa660 Pablo Neira     2016-05-09  686        err = gtp_hashtable_new(gtp, 
hashsize);
459aa660 Pablo Neira     2016-05-09  687        if (err < 0)
459aa660 Pablo Neira     2016-05-09  688                goto out_encap;
459aa660 Pablo Neira     2016-05-09  689  
459aa660 Pablo Neira     2016-05-09  690        err = register_netdevice(dev);
459aa660 Pablo Neira     2016-05-09  691        if (err < 0) {
459aa660 Pablo Neira     2016-05-09  692                netdev_dbg(dev, "failed 
to register new netdev %d\n", err);
459aa660 Pablo Neira     2016-05-09  693                goto out_hashtable;
459aa660 Pablo Neira     2016-05-09  694        }
459aa660 Pablo Neira     2016-05-09  695  
459aa660 Pablo Neira     2016-05-09  696        gn = net_generic(dev_net(dev), 
gtp_net_id);
459aa660 Pablo Neira     2016-05-09  697        list_add_rcu(&gtp->list, 
&gn->gtp_dev_list);
459aa660 Pablo Neira     2016-05-09  698  
459aa660 Pablo Neira     2016-05-09  699        netdev_dbg(dev, "registered new 
GTP interface\n");
459aa660 Pablo Neira     2016-05-09  700  
459aa660 Pablo Neira     2016-05-09  701        return 0;
459aa660 Pablo Neira     2016-05-09  702  
459aa660 Pablo Neira     2016-05-09  703  out_hashtable:
459aa660 Pablo Neira     2016-05-09  704        gtp_hashtable_free(gtp);
459aa660 Pablo Neira     2016-05-09  705  out_encap:
459aa660 Pablo Neira     2016-05-09  706        gtp_encap_disable(gtp);
459aa660 Pablo Neira     2016-05-09  707  out_err:
459aa660 Pablo Neira     2016-05-09  708        return err;
459aa660 Pablo Neira     2016-05-09  709  }
459aa660 Pablo Neira     2016-05-09  710  
459aa660 Pablo Neira     2016-05-09  711  static void gtp_dellink(struct 
net_device *dev, struct list_head *head)
459aa660 Pablo Neira     2016-05-09  712  {
459aa660 Pablo Neira     2016-05-09  713        struct gtp_dev *gtp = 
netdev_priv(dev);
459aa660 Pablo Neira     2016-05-09  714  
459aa660 Pablo Neira     2016-05-09  715        gtp_encap_disable(gtp);
459aa660 Pablo Neira     2016-05-09  716        gtp_hashtable_free(gtp);
459aa660 Pablo Neira     2016-05-09  717        list_del_rcu(&gtp->list);
459aa660 Pablo Neira     2016-05-09  718        unregister_netdevice_queue(dev, 
head);
459aa660 Pablo Neira     2016-05-09  719  }
459aa660 Pablo Neira     2016-05-09  720  
459aa660 Pablo Neira     2016-05-09  721  static const struct nla_policy 
gtp_policy[IFLA_GTP_MAX + 1] = {
459aa660 Pablo Neira     2016-05-09  722        [IFLA_GTP_FD0]                  
= { .type = NLA_U32 },
459aa660 Pablo Neira     2016-05-09  723        [IFLA_GTP_FD1]                  
= { .type = NLA_U32 },
459aa660 Pablo Neira     2016-05-09  724        [IFLA_GTP_PDP_HASHSIZE]         
= { .type = NLA_U32 },
459aa660 Pablo Neira     2016-05-09  725  };
459aa660 Pablo Neira     2016-05-09  726  
459aa660 Pablo Neira     2016-05-09  727  static int gtp_validate(struct nlattr 
*tb[], struct nlattr *data[])
459aa660 Pablo Neira     2016-05-09  728  {
459aa660 Pablo Neira     2016-05-09  729        if (!data)
459aa660 Pablo Neira     2016-05-09  730                return -EINVAL;
459aa660 Pablo Neira     2016-05-09  731  
459aa660 Pablo Neira     2016-05-09  732        return 0;
459aa660 Pablo Neira     2016-05-09  733  }
459aa660 Pablo Neira     2016-05-09  734  
459aa660 Pablo Neira     2016-05-09  735  static size_t gtp_get_size(const 
struct net_device *dev)
459aa660 Pablo Neira     2016-05-09  736  {
459aa660 Pablo Neira     2016-05-09  737        return 
nla_total_size(sizeof(__u32));   /* IFLA_GTP_PDP_HASHSIZE */
459aa660 Pablo Neira     2016-05-09  738  }
459aa660 Pablo Neira     2016-05-09  739  
459aa660 Pablo Neira     2016-05-09  740  static int gtp_fill_info(struct 
sk_buff *skb, const struct net_device *dev)
459aa660 Pablo Neira     2016-05-09  741  {
459aa660 Pablo Neira     2016-05-09  742        struct gtp_dev *gtp = 
netdev_priv(dev);
459aa660 Pablo Neira     2016-05-09  743  
459aa660 Pablo Neira     2016-05-09  744        if (nla_put_u32(skb, 
IFLA_GTP_PDP_HASHSIZE, gtp->hash_size))
459aa660 Pablo Neira     2016-05-09  745                goto nla_put_failure;
459aa660 Pablo Neira     2016-05-09  746  
459aa660 Pablo Neira     2016-05-09  747        return 0;
459aa660 Pablo Neira     2016-05-09  748  
459aa660 Pablo Neira     2016-05-09  749  nla_put_failure:
459aa660 Pablo Neira     2016-05-09  750        return -EMSGSIZE;
459aa660 Pablo Neira     2016-05-09  751  }
459aa660 Pablo Neira     2016-05-09  752  
459aa660 Pablo Neira     2016-05-09  753  static struct rtnl_link_ops 
gtp_link_ops __read_mostly = {
459aa660 Pablo Neira     2016-05-09  754        .kind           = "gtp",
459aa660 Pablo Neira     2016-05-09  755        .maxtype        = IFLA_GTP_MAX,
459aa660 Pablo Neira     2016-05-09  756        .policy         = gtp_policy,
459aa660 Pablo Neira     2016-05-09  757        .priv_size      = sizeof(struct 
gtp_dev),
459aa660 Pablo Neira     2016-05-09  758        .setup          = 
gtp_link_setup,
459aa660 Pablo Neira     2016-05-09  759        .validate       = gtp_validate,
459aa660 Pablo Neira     2016-05-09  760        .newlink        = gtp_newlink,
459aa660 Pablo Neira     2016-05-09  761        .dellink        = gtp_dellink,
459aa660 Pablo Neira     2016-05-09  762        .get_size       = gtp_get_size,
459aa660 Pablo Neira     2016-05-09  763        .fill_info      = gtp_fill_info,
459aa660 Pablo Neira     2016-05-09  764  };
459aa660 Pablo Neira     2016-05-09  765  
459aa660 Pablo Neira     2016-05-09  766  static struct net 
*gtp_genl_get_net(struct net *src_net, struct nlattr *tb[])
459aa660 Pablo Neira     2016-05-09  767  {
459aa660 Pablo Neira     2016-05-09  768        struct net *net;
459aa660 Pablo Neira     2016-05-09  769  
459aa660 Pablo Neira     2016-05-09  770        /* Examine the link attributes 
and figure out which network namespace
459aa660 Pablo Neira     2016-05-09  771         * we are talking about.
459aa660 Pablo Neira     2016-05-09  772         */
459aa660 Pablo Neira     2016-05-09  773        if (tb[GTPA_NET_NS_FD])
459aa660 Pablo Neira     2016-05-09  774                net = 
get_net_ns_by_fd(nla_get_u32(tb[GTPA_NET_NS_FD]));
459aa660 Pablo Neira     2016-05-09  775        else
459aa660 Pablo Neira     2016-05-09  776                net = get_net(src_net);
459aa660 Pablo Neira     2016-05-09  777  
459aa660 Pablo Neira     2016-05-09  778        return net;
459aa660 Pablo Neira     2016-05-09  779  }
459aa660 Pablo Neira     2016-05-09  780  
459aa660 Pablo Neira     2016-05-09  781  static int gtp_hashtable_new(struct 
gtp_dev *gtp, int hsize)
459aa660 Pablo Neira     2016-05-09  782  {
459aa660 Pablo Neira     2016-05-09  783        int i;
459aa660 Pablo Neira     2016-05-09  784  
459aa660 Pablo Neira     2016-05-09  785        gtp->addr_hash = 
kmalloc(sizeof(struct hlist_head) * hsize, GFP_KERNEL);
459aa660 Pablo Neira     2016-05-09  786        if (gtp->addr_hash == NULL)
459aa660 Pablo Neira     2016-05-09  787                return -ENOMEM;
459aa660 Pablo Neira     2016-05-09  788  
459aa660 Pablo Neira     2016-05-09  789        gtp->tid_hash = 
kmalloc(sizeof(struct hlist_head) * hsize, GFP_KERNEL);
459aa660 Pablo Neira     2016-05-09  790        if (gtp->tid_hash == NULL)
459aa660 Pablo Neira     2016-05-09  791                goto err1;
459aa660 Pablo Neira     2016-05-09  792  
459aa660 Pablo Neira     2016-05-09  793        gtp->hash_size = hsize;
459aa660 Pablo Neira     2016-05-09  794  
459aa660 Pablo Neira     2016-05-09  795        for (i = 0; i < hsize; i++) {
459aa660 Pablo Neira     2016-05-09  796                
INIT_HLIST_HEAD(&gtp->addr_hash[i]);
459aa660 Pablo Neira     2016-05-09  797                
INIT_HLIST_HEAD(&gtp->tid_hash[i]);
459aa660 Pablo Neira     2016-05-09  798        }
459aa660 Pablo Neira     2016-05-09  799        return 0;
459aa660 Pablo Neira     2016-05-09  800  err1:
459aa660 Pablo Neira     2016-05-09  801        kfree(gtp->addr_hash);
459aa660 Pablo Neira     2016-05-09  802        return -ENOMEM;
459aa660 Pablo Neira     2016-05-09  803  }
459aa660 Pablo Neira     2016-05-09  804  
459aa660 Pablo Neira     2016-05-09  805  static void gtp_hashtable_free(struct 
gtp_dev *gtp)
459aa660 Pablo Neira     2016-05-09  806  {
459aa660 Pablo Neira     2016-05-09  807        struct pdp_ctx *pctx;
459aa660 Pablo Neira     2016-05-09  808        int i;
459aa660 Pablo Neira     2016-05-09  809  
459aa660 Pablo Neira     2016-05-09  810        for (i = 0; i < gtp->hash_size; 
i++) {
459aa660 Pablo Neira     2016-05-09  811                
hlist_for_each_entry_rcu(pctx, &gtp->tid_hash[i], hlist_tid) {
459aa660 Pablo Neira     2016-05-09  812                        
hlist_del_rcu(&pctx->hlist_tid);
459aa660 Pablo Neira     2016-05-09  813                        
hlist_del_rcu(&pctx->hlist_addr);
459aa660 Pablo Neira     2016-05-09  814                        kfree_rcu(pctx, 
rcu_head);
459aa660 Pablo Neira     2016-05-09  815                }
459aa660 Pablo Neira     2016-05-09  816        }
459aa660 Pablo Neira     2016-05-09  817        synchronize_rcu();
459aa660 Pablo Neira     2016-05-09  818        kfree(gtp->addr_hash);
459aa660 Pablo Neira     2016-05-09  819        kfree(gtp->tid_hash);
459aa660 Pablo Neira     2016-05-09  820  }
459aa660 Pablo Neira     2016-05-09  821  
459aa660 Pablo Neira     2016-05-09 @822  static int gtp_encap_enable(struct 
net_device *dev, struct gtp_dev *gtp,
459aa660 Pablo Neira     2016-05-09  823                            int 
fd_gtp0, int fd_gtp1, struct net *src_net)
459aa660 Pablo Neira     2016-05-09  824  {
459aa660 Pablo Neira     2016-05-09  825        struct udp_tunnel_sock_cfg 
tuncfg = {NULL};

:::::: The code at line 677 was first introduced by commit
:::::: 459aa660eb1d8ce67080da1983bb81d716aa5a69 gtp: add initial driver for 
datapath of GPRS Tunneling Protocol (GTP-U)

:::::: TO: Pablo Neira <pa...@netfilter.org>
:::::: CC: David S. Miller <da...@davemloft.net>

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

Attachment: .config.gz
Description: application/gzip

Reply via email to