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: <201812191218.3RjYYrQL%fengguang.wu@intel.com>
Date:   Wed, 19 Dec 2018 12:35:45 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Hoang Le <hoang.h.le@...tech.com.au>
Cc:     kbuild-all@...org, tipc-discussion@...ts.sourceforge.net,
        jon.maloy@...csson.com, maloy@...jonn.com, ying.xue@...driver.com,
        netdev@...r.kernel.org
Subject: Re: [net] tipc: fix uninitialized value for broadcast retransmission

Hi Hoang,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net/master]

url:    https://github.com/0day-ci/linux/commits/Hoang-Le/tipc-fix-uninitialized-value-for-broadcast-retransmission/20181219-112414
config: nds32-allmodconfig (attached as .config)
compiler: nds32le-linux-gcc (GCC) 6.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=6.4.0 make.cross ARCH=nds32 

All errors (new ones prefixed by >>):

   net/tipc/link.c: In function 'tipc_link_xmit':
   net/tipc/link.c:953:21: error: 'struct tipc_skb_cb' has no member named 'nxt_retr'
        TIPC_SKB_CB(skb)->nxt_retr =
                        ^~
>> net/tipc/link.c:954:16: error: 'TIPC_BC_RETR_LIM' undeclared (first use in this function)
         jiffies + TIPC_BC_RETR_LIM;
                   ^~~~~~~~~~~~~~~~
   net/tipc/link.c:954:16: note: each undeclared identifier is reported only once for each function it appears in
   net/tipc/link.c: In function 'tipc_link_advance_backlog':
   net/tipc/link.c:1004:20: error: 'struct tipc_skb_cb' has no member named 'nxt_retr'
       TIPC_SKB_CB(skb)->nxt_retr = jiffies + TIPC_BC_RETR_LIM;
                       ^~
   net/tipc/link.c:1004:43: error: 'TIPC_BC_RETR_LIM' undeclared (first use in this function)
       TIPC_SKB_CB(skb)->nxt_retr = jiffies + TIPC_BC_RETR_LIM;
                                              ^~~~~~~~~~~~~~~~

vim +/TIPC_BC_RETR_LIM +954 net/tipc/link.c

   889	
   890	/**
   891	 * tipc_link_xmit(): enqueue buffer list according to queue situation
   892	 * @link: link to use
   893	 * @list: chain of buffers containing message
   894	 * @xmitq: returned list of packets to be sent by caller
   895	 *
   896	 * Consumes the buffer chain.
   897	 * Returns 0 if success, or errno: -ELINKCONG, -EMSGSIZE or -ENOBUFS
   898	 * Messages at TIPC_SYSTEM_IMPORTANCE are always accepted
   899	 */
   900	int tipc_link_xmit(struct tipc_link *l, struct sk_buff_head *list,
   901			   struct sk_buff_head *xmitq)
   902	{
   903		struct tipc_msg *hdr = buf_msg(skb_peek(list));
   904		unsigned int maxwin = l->window;
   905		int imp = msg_importance(hdr);
   906		unsigned int mtu = l->mtu;
   907		u16 ack = l->rcv_nxt - 1;
   908		u16 seqno = l->snd_nxt;
   909		u16 bc_ack = l->bc_rcvlink->rcv_nxt - 1;
   910		struct sk_buff_head *transmq = &l->transmq;
   911		struct sk_buff_head *backlogq = &l->backlogq;
   912		struct sk_buff *skb, *_skb, *bskb;
   913		int pkt_cnt = skb_queue_len(list);
   914		int rc = 0;
   915	
   916		if (unlikely(msg_size(hdr) > mtu)) {
   917			skb_queue_purge(list);
   918			return -EMSGSIZE;
   919		}
   920	
   921		/* Allow oversubscription of one data msg per source at congestion */
   922		if (unlikely(l->backlog[imp].len >= l->backlog[imp].limit)) {
   923			if (imp == TIPC_SYSTEM_IMPORTANCE) {
   924				pr_warn("%s<%s>, link overflow", link_rst_msg, l->name);
   925				return -ENOBUFS;
   926			}
   927			rc = link_schedule_user(l, hdr);
   928		}
   929	
   930		if (pkt_cnt > 1) {
   931			l->stats.sent_fragmented++;
   932			l->stats.sent_fragments += pkt_cnt;
   933		}
   934	
   935		/* Prepare each packet for sending, and add to relevant queue: */
   936		while (skb_queue_len(list)) {
   937			skb = skb_peek(list);
   938			hdr = buf_msg(skb);
   939			msg_set_seqno(hdr, seqno);
   940			msg_set_ack(hdr, ack);
   941			msg_set_bcast_ack(hdr, bc_ack);
   942	
   943			if (likely(skb_queue_len(transmq) < maxwin)) {
   944				_skb = skb_clone(skb, GFP_ATOMIC);
   945				if (!_skb) {
   946					skb_queue_purge(list);
   947					return -ENOBUFS;
   948				}
   949				__skb_dequeue(list);
   950				__skb_queue_tail(transmq, skb);
   951				/* next retransmit attempt */
   952				if (link_is_bc_sndlink(l))
 > 953					TIPC_SKB_CB(skb)->nxt_retr =
 > 954						jiffies + TIPC_BC_RETR_LIM;
   955				__skb_queue_tail(xmitq, _skb);
   956				TIPC_SKB_CB(skb)->ackers = l->ackers;
   957				l->rcv_unacked = 0;
   958				l->stats.sent_pkts++;
   959				seqno++;
   960				continue;
   961			}
   962			if (tipc_msg_bundle(skb_peek_tail(backlogq), hdr, mtu)) {
   963				kfree_skb(__skb_dequeue(list));
   964				l->stats.sent_bundled++;
   965				continue;
   966			}
   967			if (tipc_msg_make_bundle(&bskb, hdr, mtu, l->addr)) {
   968				kfree_skb(__skb_dequeue(list));
   969				__skb_queue_tail(backlogq, bskb);
   970				l->backlog[msg_importance(buf_msg(bskb))].len++;
   971				l->stats.sent_bundled++;
   972				l->stats.sent_bundles++;
   973				continue;
   974			}
   975			l->backlog[imp].len += skb_queue_len(list);
   976			skb_queue_splice_tail_init(list, backlogq);
   977		}
   978		l->snd_nxt = seqno;
   979		return rc;
   980	}
   981	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ