lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201712170344.sE6aI3eo%fengguang.wu@intel.com>
Date:   Sun, 17 Dec 2017 03:06:53 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Alexander Aring <aring@...atatu.com>
Cc:     kbuild-all@...org, jhs@...atatu.com, xiyou.wangcong@...il.com,
        jiri@...nulli.us, davem@...emloft.net, netdev@...r.kernel.org,
        kernel@...atatu.com, Alexander Aring <aring@...atatu.com>,
        David Ahern <dsahern@...il.com>
Subject: Re: [PATCHv2 net-next 12/15] net: sch: api: add extack support in
 qdisc_create_dflt

Hi Alexander,

I love your patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Alexander-Aring/net-sched-sch-introduce-extack-support/20171217-015839
config: x86_64-randconfig-x003-201751 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   net/sched/sch_atm.c: In function 'atm_tc_change':
   net/sched/sch_atm.c:285:10: error: too few arguments to function 'tcf_block_get'
     error = tcf_block_get(&flow->block, &flow->filter_list, sch);
             ^~~~~~~~~~~~~
   In file included from net/sched/sch_atm.c:18:0:
   include/net/pkt_cls.h:41:5: note: declared here
    int tcf_block_get(struct tcf_block **p_block,
        ^~~~~~~~~~~~~
>> net/sched/sch_atm.c:291:12: error: too few arguments to function 'qdisc_create_dflt'
     flow->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid);
               ^~~~~~~~~~~~~~~~~
   In file included from include/linux/filter.h:22:0,
                    from include/net/sock.h:64,
                    from include/linux/atmdev.h:13,
                    from net/sched/sch_atm.c:12:
   include/net/sch_generic.h:475:15: note: declared here
    struct Qdisc *qdisc_create_dflt(struct netdev_queue *dev_queue,
                  ^~~~~~~~~~~~~~~~~
   net/sched/sch_atm.c: In function 'atm_tc_init':
   net/sched/sch_atm.c:544:14: error: too few arguments to function 'qdisc_create_dflt'
     p->link.q = qdisc_create_dflt(sch->dev_queue,
                 ^~~~~~~~~~~~~~~~~
   In file included from include/linux/filter.h:22:0,
                    from include/net/sock.h:64,
                    from include/linux/atmdev.h:13,
                    from net/sched/sch_atm.c:12:
   include/net/sch_generic.h:475:15: note: declared here
    struct Qdisc *qdisc_create_dflt(struct netdev_queue *dev_queue,
                  ^~~~~~~~~~~~~~~~~
   net/sched/sch_atm.c:550:8: error: too few arguments to function 'tcf_block_get'
     err = tcf_block_get(&p->link.block, &p->link.filter_list, sch);
           ^~~~~~~~~~~~~
   In file included from net/sched/sch_atm.c:18:0:
   include/net/pkt_cls.h:41:5: note: declared here
    int tcf_block_get(struct tcf_block **p_block,
        ^~~~~~~~~~~~~
   net/sched/sch_atm.c: At top level:
   net/sched/sch_atm.c:660:12: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
     .graft  = atm_tc_graft,
               ^~~~~~~~~~~~
   net/sched/sch_atm.c:660:12: note: (near initialization for 'atm_class_ops.graft')
   net/sched/sch_atm.c:666:15: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
     .tcf_block = atm_tc_tcf_block,
                  ^~~~~~~~~~~~~~~~
   net/sched/sch_atm.c:666:15: note: (near initialization for 'atm_class_ops.tcf_block')
   net/sched/sch_atm.c:680:11: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
     .init  = atm_tc_init,
              ^~~~~~~~~~~
   net/sched/sch_atm.c:680:11: note: (near initialization for 'atm_qdisc_ops.init')
   cc1: some warnings being treated as errors

vim +/qdisc_create_dflt +291 net/sched/sch_atm.c

27a3421e4 Patrick McHardy   2008-01-23  192  
^1da177e4 Linus Torvalds    2005-04-16  193  static int atm_tc_change(struct Qdisc *sch, u32 classid, u32 parent,
7eb3baddc Alexander Aring   2017-12-14  194  			 struct nlattr **tca, unsigned long *arg,
7eb3baddc Alexander Aring   2017-12-14  195  			 struct netlink_ext_ack *extack)
^1da177e4 Linus Torvalds    2005-04-16  196  {
786a90366 Stephen Hemminger 2008-01-21  197  	struct atm_qdisc_data *p = qdisc_priv(sch);
^1da177e4 Linus Torvalds    2005-04-16  198  	struct atm_flow_data *flow = (struct atm_flow_data *)*arg;
^1da177e4 Linus Torvalds    2005-04-16  199  	struct atm_flow_data *excess = NULL;
1e90474c3 Patrick McHardy   2008-01-22  200  	struct nlattr *opt = tca[TCA_OPTIONS];
1e90474c3 Patrick McHardy   2008-01-22  201  	struct nlattr *tb[TCA_ATM_MAX + 1];
^1da177e4 Linus Torvalds    2005-04-16  202  	struct socket *sock;
^1da177e4 Linus Torvalds    2005-04-16  203  	int fd, error, hdr_len;
^1da177e4 Linus Torvalds    2005-04-16  204  	void *hdr;
^1da177e4 Linus Torvalds    2005-04-16  205  
786a90366 Stephen Hemminger 2008-01-21  206  	pr_debug("atm_tc_change(sch %p,[qdisc %p],classid %x,parent %x,"
^1da177e4 Linus Torvalds    2005-04-16  207  		"flow %p,opt %p)\n", sch, p, classid, parent, flow, opt);
^1da177e4 Linus Torvalds    2005-04-16  208  	/*
^1da177e4 Linus Torvalds    2005-04-16  209  	 * The concept of parents doesn't apply for this qdisc.
^1da177e4 Linus Torvalds    2005-04-16  210  	 */
^1da177e4 Linus Torvalds    2005-04-16  211  	if (parent && parent != TC_H_ROOT && parent != sch->handle)
^1da177e4 Linus Torvalds    2005-04-16  212  		return -EINVAL;
^1da177e4 Linus Torvalds    2005-04-16  213  	/*
^1da177e4 Linus Torvalds    2005-04-16  214  	 * ATM classes cannot be changed. In order to change properties of the
^1da177e4 Linus Torvalds    2005-04-16  215  	 * ATM connection, that socket needs to be modified directly (via the
^1da177e4 Linus Torvalds    2005-04-16  216  	 * native ATM API. In order to send a flow to a different VC, the old
^1da177e4 Linus Torvalds    2005-04-16  217  	 * class needs to be removed and a new one added. (This may be changed
^1da177e4 Linus Torvalds    2005-04-16  218  	 * later.)
^1da177e4 Linus Torvalds    2005-04-16  219  	 */
b0188d4db Patrick McHardy   2007-07-15  220  	if (flow)
b0188d4db Patrick McHardy   2007-07-15  221  		return -EBUSY;
cee63723b Patrick McHardy   2008-01-23  222  	if (opt == NULL)
^1da177e4 Linus Torvalds    2005-04-16  223  		return -EINVAL;
27a3421e4 Patrick McHardy   2008-01-23  224  
fceb6435e Johannes Berg     2017-04-12  225  	error = nla_parse_nested(tb, TCA_ATM_MAX, opt, atm_policy, NULL);
cee63723b Patrick McHardy   2008-01-23  226  	if (error < 0)
cee63723b Patrick McHardy   2008-01-23  227  		return error;
cee63723b Patrick McHardy   2008-01-23  228  
27a3421e4 Patrick McHardy   2008-01-23  229  	if (!tb[TCA_ATM_FD])
^1da177e4 Linus Torvalds    2005-04-16  230  		return -EINVAL;
1587bac49 Patrick McHardy   2008-01-23  231  	fd = nla_get_u32(tb[TCA_ATM_FD]);
786a90366 Stephen Hemminger 2008-01-21  232  	pr_debug("atm_tc_change: fd %d\n", fd);
1e90474c3 Patrick McHardy   2008-01-22  233  	if (tb[TCA_ATM_HDR]) {
1e90474c3 Patrick McHardy   2008-01-22  234  		hdr_len = nla_len(tb[TCA_ATM_HDR]);
1e90474c3 Patrick McHardy   2008-01-22  235  		hdr = nla_data(tb[TCA_ATM_HDR]);
b0188d4db Patrick McHardy   2007-07-15  236  	} else {
^1da177e4 Linus Torvalds    2005-04-16  237  		hdr_len = RFC1483LLC_LEN;
^1da177e4 Linus Torvalds    2005-04-16  238  		hdr = NULL;	/* default LLC/SNAP for IP */
^1da177e4 Linus Torvalds    2005-04-16  239  	}
1e90474c3 Patrick McHardy   2008-01-22  240  	if (!tb[TCA_ATM_EXCESS])
b0188d4db Patrick McHardy   2007-07-15  241  		excess = NULL;
^1da177e4 Linus Torvalds    2005-04-16  242  	else {
b0188d4db Patrick McHardy   2007-07-15  243  		excess = (struct atm_flow_data *)
143976ce9 WANG Cong         2017-08-24  244  			atm_tc_find(sch, nla_get_u32(tb[TCA_ATM_EXCESS]));
b0188d4db Patrick McHardy   2007-07-15  245  		if (!excess)
b0188d4db Patrick McHardy   2007-07-15  246  			return -ENOENT;
^1da177e4 Linus Torvalds    2005-04-16  247  	}
f5e5cb755 Patrick McHardy   2008-01-23  248  	pr_debug("atm_tc_change: type %d, payload %d, hdr_len %d\n",
1e90474c3 Patrick McHardy   2008-01-22  249  		 opt->nla_type, nla_len(opt), hdr_len);
786a90366 Stephen Hemminger 2008-01-21  250  	sock = sockfd_lookup(fd, &error);
786a90366 Stephen Hemminger 2008-01-21  251  	if (!sock)
b0188d4db Patrick McHardy   2007-07-15  252  		return error;	/* f_count++ */
516e0cc56 Al Viro           2008-07-26  253  	pr_debug("atm_tc_change: f_count %ld\n", file_count(sock->file));
^1da177e4 Linus Torvalds    2005-04-16  254  	if (sock->ops->family != PF_ATMSVC && sock->ops->family != PF_ATMPVC) {
^1da177e4 Linus Torvalds    2005-04-16  255  		error = -EPROTOTYPE;
^1da177e4 Linus Torvalds    2005-04-16  256  		goto err_out;
^1da177e4 Linus Torvalds    2005-04-16  257  	}
^1da177e4 Linus Torvalds    2005-04-16  258  	/* @@@ should check if the socket is really operational or we'll crash
^1da177e4 Linus Torvalds    2005-04-16  259  	   on vcc->send */
^1da177e4 Linus Torvalds    2005-04-16  260  	if (classid) {
^1da177e4 Linus Torvalds    2005-04-16  261  		if (TC_H_MAJ(classid ^ sch->handle)) {
786a90366 Stephen Hemminger 2008-01-21  262  			pr_debug("atm_tc_change: classid mismatch\n");
^1da177e4 Linus Torvalds    2005-04-16  263  			error = -EINVAL;
^1da177e4 Linus Torvalds    2005-04-16  264  			goto err_out;
^1da177e4 Linus Torvalds    2005-04-16  265  		}
b0188d4db Patrick McHardy   2007-07-15  266  	} else {
^1da177e4 Linus Torvalds    2005-04-16  267  		int i;
^1da177e4 Linus Torvalds    2005-04-16  268  		unsigned long cl;
^1da177e4 Linus Torvalds    2005-04-16  269  
^1da177e4 Linus Torvalds    2005-04-16  270  		for (i = 1; i < 0x8000; i++) {
^1da177e4 Linus Torvalds    2005-04-16  271  			classid = TC_H_MAKE(sch->handle, 0x8000 | i);
143976ce9 WANG Cong         2017-08-24  272  			cl = atm_tc_find(sch, classid);
786a90366 Stephen Hemminger 2008-01-21  273  			if (!cl)
b0188d4db Patrick McHardy   2007-07-15  274  				break;
^1da177e4 Linus Torvalds    2005-04-16  275  		}
^1da177e4 Linus Torvalds    2005-04-16  276  	}
786a90366 Stephen Hemminger 2008-01-21  277  	pr_debug("atm_tc_change: new id %x\n", classid);
782f79568 vignesh babu      2007-07-16  278  	flow = kzalloc(sizeof(struct atm_flow_data) + hdr_len, GFP_KERNEL);
786a90366 Stephen Hemminger 2008-01-21  279  	pr_debug("atm_tc_change: flow %p\n", flow);
^1da177e4 Linus Torvalds    2005-04-16  280  	if (!flow) {
^1da177e4 Linus Torvalds    2005-04-16  281  		error = -ENOBUFS;
^1da177e4 Linus Torvalds    2005-04-16  282  		goto err_out;
^1da177e4 Linus Torvalds    2005-04-16  283  	}
6529eaba3 Jiri Pirko        2017-05-17  284  
69d78ef25 Jiri Pirko        2017-10-13 @285  	error = tcf_block_get(&flow->block, &flow->filter_list, sch);
6529eaba3 Jiri Pirko        2017-05-17  286  	if (error) {
6529eaba3 Jiri Pirko        2017-05-17  287  		kfree(flow);
6529eaba3 Jiri Pirko        2017-05-17  288  		goto err_out;
6529eaba3 Jiri Pirko        2017-05-17  289  	}
6529eaba3 Jiri Pirko        2017-05-17  290  
3511c9132 Changli Gao       2010-10-16 @291  	flow->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid);
786a90366 Stephen Hemminger 2008-01-21  292  	if (!flow->q)
^1da177e4 Linus Torvalds    2005-04-16  293  		flow->q = &noop_qdisc;
786a90366 Stephen Hemminger 2008-01-21  294  	pr_debug("atm_tc_change: qdisc %p\n", flow->q);
^1da177e4 Linus Torvalds    2005-04-16  295  	flow->sock = sock;
^1da177e4 Linus Torvalds    2005-04-16  296  	flow->vcc = ATM_SD(sock);	/* speedup */
^1da177e4 Linus Torvalds    2005-04-16  297  	flow->vcc->user_back = flow;
786a90366 Stephen Hemminger 2008-01-21  298  	pr_debug("atm_tc_change: vcc %p\n", flow->vcc);
^1da177e4 Linus Torvalds    2005-04-16  299  	flow->old_pop = flow->vcc->pop;
^1da177e4 Linus Torvalds    2005-04-16  300  	flow->parent = p;
^1da177e4 Linus Torvalds    2005-04-16  301  	flow->vcc->pop = sch_atm_pop;
f7ebdff75 Jiri Pirko        2017-08-04  302  	flow->common.classid = classid;
^1da177e4 Linus Torvalds    2005-04-16  303  	flow->ref = 1;
^1da177e4 Linus Torvalds    2005-04-16  304  	flow->excess = excess;
6accec76f David S. Miller   2010-07-18  305  	list_add(&flow->list, &p->link.list);
^1da177e4 Linus Torvalds    2005-04-16  306  	flow->hdr_len = hdr_len;
^1da177e4 Linus Torvalds    2005-04-16  307  	if (hdr)
^1da177e4 Linus Torvalds    2005-04-16  308  		memcpy(flow->hdr, hdr, hdr_len);
^1da177e4 Linus Torvalds    2005-04-16  309  	else
^1da177e4 Linus Torvalds    2005-04-16  310  		memcpy(flow->hdr, llc_oui_ip, sizeof(llc_oui_ip));
^1da177e4 Linus Torvalds    2005-04-16  311  	*arg = (unsigned long)flow;
^1da177e4 Linus Torvalds    2005-04-16  312  	return 0;
^1da177e4 Linus Torvalds    2005-04-16  313  err_out:
^1da177e4 Linus Torvalds    2005-04-16  314  	sockfd_put(sock);
^1da177e4 Linus Torvalds    2005-04-16  315  	return error;
^1da177e4 Linus Torvalds    2005-04-16  316  }
^1da177e4 Linus Torvalds    2005-04-16  317  

:::::: The code at line 291 was first introduced by commit
:::::: 3511c9132f8b1e1b5634e41a3331c44b0c13be70 net_sched: remove the unused parameter of qdisc_create_dflt()

:::::: TO: Changli Gao <xiaosuo@...il.com>
:::::: CC: David S. Miller <davem@...emloft.net>

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

Download attachment ".config.gz" of type "application/gzip" (27258 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ