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

Attachment: .config.gz
Description: application/gzip

Reply via email to