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]
Date:   Sun, 30 May 2021 01:48:43 +0800
From:   kernel test robot <lkp@...el.com>
To:     jmaloy@...hat.com, netdev@...r.kernel.org, davem@...emloft.net
Cc:     kbuild-all@...ts.01.org, clang-built-linux@...glegroups.com,
        tipc-discussion@...ts.sourceforge.net,
        tung.q.nguyen@...tech.com.au, hoang.h.le@...tech.com.au,
        tuong.t.lien@...tech.com.au, jmaloy@...hat.com, maloy@...jonn.com,
        xinl@...hat.com, ying.xue@...driver.com
Subject: Re: [net-next 3/3] tipc: simplify handling of lookup scope during
 multicast message reception

Hi,

I love your patch! Perhaps something to improve:

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

url:    https://github.com/0day-ci/linux/commits/jmaloy-redhat-com/tipc-some-small-cleanups/20210529-231533
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 015dbf5662fd689d581c0bc980711b073ca09a1a
config: x86_64-randconfig-a005-20210529 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project bc6799f2f79f0ae87e9f1ebf9d25ba799fbd25a9)
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 x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/5ba80be36645dc45d04e6fc15b27a538269f6b1e
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review jmaloy-redhat-com/tipc-some-small-cleanups/20210529-231533
        git checkout 5ba80be36645dc45d04e6fc15b27a538269f6b1e
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All warnings (new ones prefixed by >>):

>> net/tipc/socket.c:1220:15: warning: implicit conversion from 'int' to 'signed char' changes value from 255 to -1 [-Wconstant-conversion]
                           ua.scope = TIPC_ANY_SCOPE;
                                    ~ ^~~~~~~~~~~~~~
   net/tipc/name_table.h:54:24: note: expanded from macro 'TIPC_ANY_SCOPE'
   #define TIPC_ANY_SCOPE 255
                          ^~~
   1 warning generated.


vim +1220 net/tipc/socket.c

  1183	
  1184	/**
  1185	 * tipc_sk_mcast_rcv - Deliver multicast messages to all destination sockets
  1186	 * @net: the associated network namespace
  1187	 * @arrvq: queue with arriving messages, to be cloned after destination lookup
  1188	 * @inputq: queue with cloned messages, delivered to socket after dest lookup
  1189	 *
  1190	 * Multi-threaded: parallel calls with reference to same queues may occur
  1191	 */
  1192	void tipc_sk_mcast_rcv(struct net *net, struct sk_buff_head *arrvq,
  1193			       struct sk_buff_head *inputq)
  1194	{
  1195		u32 self = tipc_own_addr(net);
  1196		struct sk_buff *skb, *_skb;
  1197		u32 portid, onode;
  1198		struct sk_buff_head tmpq;
  1199		struct list_head dports;
  1200		struct tipc_msg *hdr;
  1201		struct tipc_uaddr ua;
  1202		int user, mtyp, hlen;
  1203	
  1204		__skb_queue_head_init(&tmpq);
  1205		INIT_LIST_HEAD(&dports);
  1206		ua.addrtype = TIPC_SERVICE_RANGE;
  1207	
  1208		/* tipc_skb_peek() increments the head skb's reference counter */
  1209		skb = tipc_skb_peek(arrvq, &inputq->lock);
  1210		for (; skb; skb = tipc_skb_peek(arrvq, &inputq->lock)) {
  1211			hdr = buf_msg(skb);
  1212			user = msg_user(hdr);
  1213			mtyp = msg_type(hdr);
  1214			hlen = skb_headroom(skb) + msg_hdr_sz(hdr);
  1215			onode = msg_orignode(hdr);
  1216			ua.sr.type = msg_nametype(hdr);
  1217			ua.sr.lower = msg_namelower(hdr);
  1218			ua.sr.upper = msg_nameupper(hdr);
  1219			if (onode == self)
> 1220				ua.scope = TIPC_ANY_SCOPE;
  1221			else
  1222				ua.scope = TIPC_CLUSTER_SCOPE;
  1223	
  1224			if (mtyp == TIPC_GRP_UCAST_MSG || user == GROUP_PROTOCOL) {
  1225				spin_lock_bh(&inputq->lock);
  1226				if (skb_peek(arrvq) == skb) {
  1227					__skb_dequeue(arrvq);
  1228					__skb_queue_tail(inputq, skb);
  1229				}
  1230				kfree_skb(skb);
  1231				spin_unlock_bh(&inputq->lock);
  1232				continue;
  1233			}
  1234	
  1235			/* Group messages require exact scope match */
  1236			if (msg_in_group(hdr)) {
  1237				ua.sr.lower = 0;
  1238				ua.sr.upper = ~0;
  1239				ua.scope = msg_lookup_scope(hdr);
  1240			}
  1241	
  1242			/* Create destination port list: */
  1243			tipc_nametbl_lookup_mcast_sockets(net, &ua, &dports);
  1244	
  1245			/* Clone message per destination */
  1246			while (tipc_dest_pop(&dports, NULL, &portid)) {
  1247				_skb = __pskb_copy(skb, hlen, GFP_ATOMIC);
  1248				if (_skb) {
  1249					msg_set_destport(buf_msg(_skb), portid);
  1250					__skb_queue_tail(&tmpq, _skb);
  1251					continue;
  1252				}
  1253				pr_warn("Failed to clone mcast rcv buffer\n");
  1254			}
  1255			/* Append clones to inputq only if skb is still head of arrvq */
  1256			spin_lock_bh(&inputq->lock);
  1257			if (skb_peek(arrvq) == skb) {
  1258				skb_queue_splice_tail_init(&tmpq, inputq);
  1259				/* Decrement the skb's refcnt */
  1260				kfree_skb(__skb_dequeue(arrvq));
  1261			}
  1262			spin_unlock_bh(&inputq->lock);
  1263			__skb_queue_purge(&tmpq);
  1264			kfree_skb(skb);
  1265		}
  1266		tipc_sk_rcv(net, inputq);
  1267	}
  1268	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ