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] [day] [month] [year] [list]
Message-ID: <201804202346.J01rCLPt%fengguang.wu@intel.com>
Date:   Sat, 21 Apr 2018 00:06:37 +0800
From:   kbuild test robot <lkp@...el.com>
To:     GhantaKrishnamurthy MohanKrishna 
        <mohan.krishna.ghanta.krishnamurthy@...csson.com>
Cc:     kbuild-all@...org, tipc-discussion@...ts.sourceforge.net,
        jon.maloy@...csson.com, maloy@...jonn.com, ying.xue@...driver.com,
        mohan.krishna.ghanta.krishnamurthy@...csson.com,
        netdev@...r.kernel.org, davem@...emloft.net
Subject: Re: [net-next 1/3] tipc: set default MTU for UDP media

Hi GhantaKrishnamurthy,

Thank you for the patch! Yet something to improve:

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

url:    https://github.com/0day-ci/linux/commits/GhantaKrishnamurthy-MohanKrishna/tipc-Confgiuration-of-MTU-for-media-UDP/20180420-224412
config: i386-randconfig-a0-201815 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

Note: the linux-review/GhantaKrishnamurthy-MohanKrishna/tipc-Confgiuration-of-MTU-for-media-UDP/20180420-224412 HEAD 5757244a45c9114ee8a7ed60e9b074107605f6eb builds fine.
      It only hurts bisectibility.

All errors (new ones prefixed by >>):

   net/tipc/udp_media.c: In function 'tipc_udp_enable':
   net/tipc/udp_media.c:716:20: error: 'struct tipc_media' has no member named 'mtu'
      b->mtu = b->media->mtu;
                       ^
   net/tipc/udp_media.c: At top level:
>> net/tipc/udp_media.c:805:2: error: unknown field 'mtu' specified in initializer
     .mtu  = TIPC_DEF_LINK_UDP_MTU,
     ^

vim +/mtu +805 net/tipc/udp_media.c

   632	
   633	/**
   634	 * tipc_udp_enable - callback to create a new udp bearer instance
   635	 * @net:	network namespace
   636	 * @b:		pointer to generic tipc_bearer
   637	 * @attrs:	netlink bearer configuration
   638	 *
   639	 * validate the bearer parameters and initialize the udp bearer
   640	 * rtnl_lock should be held
   641	 */
   642	static int tipc_udp_enable(struct net *net, struct tipc_bearer *b,
   643				   struct nlattr *attrs[])
   644	{
   645		int err = -EINVAL;
   646		struct udp_bearer *ub;
   647		struct udp_media_addr remote = {0};
   648		struct udp_media_addr local = {0};
   649		struct udp_port_cfg udp_conf = {0};
   650		struct udp_tunnel_sock_cfg tuncfg = {NULL};
   651		struct nlattr *opts[TIPC_NLA_UDP_MAX + 1];
   652		u8 node_id[NODE_ID_LEN] = {0,};
   653	
   654		ub = kzalloc(sizeof(*ub), GFP_ATOMIC);
   655		if (!ub)
   656			return -ENOMEM;
   657	
   658		INIT_LIST_HEAD(&ub->rcast.list);
   659	
   660		if (!attrs[TIPC_NLA_BEARER_UDP_OPTS])
   661			goto err;
   662	
   663		if (nla_parse_nested(opts, TIPC_NLA_UDP_MAX,
   664				     attrs[TIPC_NLA_BEARER_UDP_OPTS],
   665				     tipc_nl_udp_policy, NULL))
   666			goto err;
   667	
   668		if (!opts[TIPC_NLA_UDP_LOCAL] || !opts[TIPC_NLA_UDP_REMOTE]) {
   669			pr_err("Invalid UDP bearer configuration");
   670			err = -EINVAL;
   671			goto err;
   672		}
   673	
   674		err = tipc_parse_udp_addr(opts[TIPC_NLA_UDP_LOCAL], &local,
   675					  &ub->ifindex);
   676		if (err)
   677			goto err;
   678	
   679		err = tipc_parse_udp_addr(opts[TIPC_NLA_UDP_REMOTE], &remote, NULL);
   680		if (err)
   681			goto err;
   682	
   683		/* Autoconfigure own node identity if needed */
   684		if (!tipc_own_id(net)) {
   685			memcpy(node_id, local.ipv6.in6_u.u6_addr8, 16);
   686			tipc_net_init(net, node_id, 0);
   687		}
   688		if (!tipc_own_id(net)) {
   689			pr_warn("Failed to set node id, please configure manually\n");
   690			err = -EINVAL;
   691			goto err;
   692		}
   693	
   694		b->bcast_addr.media_id = TIPC_MEDIA_TYPE_UDP;
   695		b->bcast_addr.broadcast = TIPC_BROADCAST_SUPPORT;
   696		rcu_assign_pointer(b->media_ptr, ub);
   697		rcu_assign_pointer(ub->bearer, b);
   698		tipc_udp_media_addr_set(&b->addr, &local);
   699		if (local.proto == htons(ETH_P_IP)) {
   700			struct net_device *dev;
   701	
   702			dev = __ip_dev_find(net, local.ipv4.s_addr, false);
   703			if (!dev) {
   704				err = -ENODEV;
   705				goto err;
   706			}
   707			udp_conf.family = AF_INET;
   708			udp_conf.local_ip.s_addr = htonl(INADDR_ANY);
   709			udp_conf.use_udp_checksums = false;
   710			ub->ifindex = dev->ifindex;
   711			if (tipc_mtu_bad(dev, sizeof(struct iphdr) +
   712					      sizeof(struct udphdr))) {
   713				err = -EINVAL;
   714				goto err;
   715			}
 > 716			b->mtu = b->media->mtu;
   717	#if IS_ENABLED(CONFIG_IPV6)
   718		} else if (local.proto == htons(ETH_P_IPV6)) {
   719			udp_conf.family = AF_INET6;
   720			udp_conf.use_udp6_tx_checksums = true;
   721			udp_conf.use_udp6_rx_checksums = true;
   722			udp_conf.local_ip6 = in6addr_any;
   723			b->mtu = 1280;
   724	#endif
   725		} else {
   726			err = -EAFNOSUPPORT;
   727			goto err;
   728		}
   729		udp_conf.local_udp_port = local.port;
   730		err = udp_sock_create(net, &udp_conf, &ub->ubsock);
   731		if (err)
   732			goto err;
   733		tuncfg.sk_user_data = ub;
   734		tuncfg.encap_type = 1;
   735		tuncfg.encap_rcv = tipc_udp_recv;
   736		tuncfg.encap_destroy = NULL;
   737		setup_udp_tunnel_sock(net, ub->ubsock, &tuncfg);
   738	
   739		/**
   740		 * The bcast media address port is used for all peers and the ip
   741		 * is used if it's a multicast address.
   742		 */
   743		memcpy(&b->bcast_addr.value, &remote, sizeof(remote));
   744		if (tipc_udp_is_mcast_addr(&remote))
   745			err = enable_mcast(ub, &remote);
   746		else
   747			err = tipc_udp_rcast_add(b, &remote);
   748		if (err)
   749			goto err;
   750	
   751		return 0;
   752	err:
   753		if (ub->ubsock)
   754			udp_tunnel_sock_release(ub->ubsock);
   755		kfree(ub);
   756		return err;
   757	}
   758	
   759	/* cleanup_bearer - break the socket/bearer association */
   760	static void cleanup_bearer(struct work_struct *work)
   761	{
   762		struct udp_bearer *ub = container_of(work, struct udp_bearer, work);
   763		struct udp_replicast *rcast, *tmp;
   764	
   765		list_for_each_entry_safe(rcast, tmp, &ub->rcast.list, list) {
   766			list_del_rcu(&rcast->list);
   767			kfree_rcu(rcast, rcu);
   768		}
   769	
   770		if (ub->ubsock)
   771			udp_tunnel_sock_release(ub->ubsock);
   772		synchronize_net();
   773		kfree(ub);
   774	}
   775	
   776	/* tipc_udp_disable - detach bearer from socket */
   777	static void tipc_udp_disable(struct tipc_bearer *b)
   778	{
   779		struct udp_bearer *ub;
   780	
   781		ub = rcu_dereference_rtnl(b->media_ptr);
   782		if (!ub) {
   783			pr_err("UDP bearer instance not found\n");
   784			return;
   785		}
   786		if (ub->ubsock)
   787			sock_set_flag(ub->ubsock->sk, SOCK_DEAD);
   788		RCU_INIT_POINTER(ub->bearer, NULL);
   789	
   790		/* sock_release need to be done outside of rtnl lock */
   791		INIT_WORK(&ub->work, cleanup_bearer);
   792		schedule_work(&ub->work);
   793	}
   794	
   795	struct tipc_media udp_media_info = {
   796		.send_msg	= tipc_udp_send_msg,
   797		.enable_media	= tipc_udp_enable,
   798		.disable_media	= tipc_udp_disable,
   799		.addr2str	= tipc_udp_addr2str,
   800		.addr2msg	= tipc_udp_addr2msg,
   801		.msg2addr	= tipc_udp_msg2addr,
   802		.priority	= TIPC_DEF_LINK_PRI,
   803		.tolerance	= TIPC_DEF_LINK_TOL,
   804		.window		= TIPC_DEF_LINK_WIN,
 > 805		.mtu		= TIPC_DEF_LINK_UDP_MTU,

---
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" (31332 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ