[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201812191127.WbjorSdX%fengguang.wu@intel.com>
Date: Wed, 19 Dec 2018 11:58:50 +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: i386-randconfig-x002-201850 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
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); did you mean 'TIPC_BC_RETR_LIMIT'?
jiffies + TIPC_BC_RETR_LIM;
^~~~~~~~~~~~~~~~
TIPC_BC_RETR_LIMIT
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); did you mean 'TIPC_BC_RETR_LIMIT'?
TIPC_SKB_CB(skb)->nxt_retr = jiffies + TIPC_BC_RETR_LIM;
^~~~~~~~~~~~~~~~
TIPC_BC_RETR_LIMIT
vim +953 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" (28258 bytes)
Powered by blists - more mailing lists