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  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]
Date:   Thu, 18 Jun 2020 14:05:36 +0800
From:   kernel test robot <lkp@...el.com>
To:     Gaurav Singh <gaurav1086@...il.com>,
        Jamal Hadi Salim <jhs@...atatu.com>,
        Cong Wang <xiyou.wangcong@...il.com>,
        Jiri Pirko <jiri@...nulli.us>,
        "David S. Miller" <davem@...emloft.net>,
        Jakub Kicinski <kuba@...nel.org>,
        "open list:TC subsystem" <netdev@...r.kernel.org>,
        open list <linux-kernel@...r.kernel.org>
Cc:     kbuild-all@...ts.01.org, clang-built-linux@...glegroups.com,
        netdev@...r.kernel.org
Subject: Re: [PATCH] [net/sched]: Remove redundant condition in qdisc_graft

Hi Gaurav,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.8-rc1 next-20200617]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use  as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Gaurav-Singh/Remove-redundant-condition-in-qdisc_graft/20200618-085703
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 1b5044021070efa3259f3e9548dc35d1eb6aa844
config: s390-randconfig-r016-20200618 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 487ca07fcc75d52755c9fe2ee05bcb3b6eeeec44)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install s390 cross compiling tool for clang build
        # apt-get install binutils-s390-linux-gnu
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All errors (new ones prefixed by >>):


vim +1097 net/sched/sch_api.c

  1019	
  1020	/* Graft qdisc "new" to class "classid" of qdisc "parent" or
  1021	 * to device "dev".
  1022	 *
  1023	 * When appropriate send a netlink notification using 'skb'
  1024	 * and "n".
  1025	 *
  1026	 * On success, destroy old qdisc.
  1027	 */
  1028	
  1029	static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
  1030			       struct sk_buff *skb, struct nlmsghdr *n, u32 classid,
  1031			       struct Qdisc *new, struct Qdisc *old,
  1032			       struct netlink_ext_ack *extack)
  1033	{
  1034		struct Qdisc *q = old;
  1035		struct net *net = dev_net(dev);
  1036	
  1037		if (parent == NULL) {
  1038			unsigned int i, num_q, ingress;
  1039	
  1040			ingress = 0;
  1041			num_q = dev->num_tx_queues;
  1042			if ((q && q->flags & TCQ_F_INGRESS) ||
  1043			    (new && new->flags & TCQ_F_INGRESS)) {
  1044				num_q = 1;
  1045				ingress = 1;
  1046				if (!dev_ingress_queue(dev)) {
  1047					NL_SET_ERR_MSG(extack, "Device does not have an ingress queue");
  1048					return -ENOENT;
  1049				}
  1050			}
  1051	
  1052			if (dev->flags & IFF_UP)
  1053				dev_deactivate(dev);
  1054	
  1055			qdisc_offload_graft_root(dev, new, old, extack);
  1056	
  1057			if (new && new->ops->attach)
  1058				goto skip;
  1059	
  1060			for (i = 0; i < num_q; i++) {
  1061				struct netdev_queue *dev_queue = dev_ingress_queue(dev);
  1062	
  1063				if (!ingress)
  1064					dev_queue = netdev_get_tx_queue(dev, i);
  1065	
  1066				old = dev_graft_qdisc(dev_queue, new);
  1067				if (new && i > 0)
  1068					qdisc_refcount_inc(new);
  1069	
  1070				if (!ingress)
  1071					qdisc_put(old);
  1072			}
  1073	
  1074	skip:
  1075			if (!ingress) {
  1076				notify_and_destroy(net, skb, n, classid,
  1077						   dev->qdisc, new);
  1078				if (new && !new->ops->attach)
  1079					qdisc_refcount_inc(new);
  1080				dev->qdisc = new ? : &noop_qdisc;
  1081	
  1082				if (new && new->ops->attach)
  1083					new->ops->attach(new);
  1084			} else {
  1085				notify_and_destroy(net, skb, n, classid, old, new);
  1086			}
  1087	
  1088			if (dev->flags & IFF_UP)
  1089				dev_activate(dev);
  1090		} else {
  1091			const struct Qdisc_class_ops *cops = parent->ops->cl_ops;
  1092			unsigned long cl;
  1093			int err;
  1094	
  1095			/* Only support running class lockless if parent is lockless */
  1096			if (new && (new->flags & TCQ_F_NOLOCK) &&
> 1097			    && !(parent->flags & TCQ_F_NOLOCK))
  1098				qdisc_clear_nolock(new);
  1099	
  1100			if (!cops || !cops->graft)
  1101				return -EOPNOTSUPP;
  1102	
  1103			cl = cops->find(parent, classid);
  1104			if (!cl) {
  1105				NL_SET_ERR_MSG(extack, "Specified class not found");
  1106				return -ENOENT;
  1107			}
  1108	
  1109			err = cops->graft(parent, cl, new, &old, extack);
  1110			if (err)
  1111				return err;
  1112			notify_and_destroy(net, skb, n, classid, old, new);
  1113		}
  1114		return 0;
  1115	}
  1116	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

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

Powered by blists - more mailing lists