Hi Ilya,

I love your patch! Perhaps something to improve:

[auto build test WARNING on net/master]
[also build test WARNING on v4.15 next-20180206]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Ilya-Lesokhin/tcp-Honor-the-eor-bit-in-tcp_mtu_probe/20180207-045040
config: i386-randconfig-x007-201805 (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   In file included from include/linux/tcp.h:21:0,
                    from include/net/tcp.h:24,
                    from net//ipv4/tcp_output.c:39:
   net//ipv4/tcp_output.c: In function 'tcp_write_xmit':
>> include/linux/skbuff.h:3196:12: warning: 'skb' may be used uninitialized in 
>> this function [-Wmaybe-uninitialized]
      for (tmp = skb->next;      \
               ^
   net//ipv4/tcp_output.c:2043:18: note: 'skb' was declared here
     struct sk_buff *skb, *nskb, *next;
                     ^~~
--
   In file included from include/linux/tcp.h:21:0,
                    from include/net/tcp.h:24,
                    from net/ipv4/tcp_output.c:39:
   net/ipv4/tcp_output.c: In function 'tcp_write_xmit':
>> include/linux/skbuff.h:3196:12: warning: 'skb' may be used uninitialized in 
>> this function [-Wmaybe-uninitialized]
      for (tmp = skb->next;      \
               ^
   net/ipv4/tcp_output.c:2043:18: note: 'skb' was declared here
     struct sk_buff *skb, *nskb, *next;
                     ^~~

vim +/skb +3196 include/linux/skbuff.h

18a4c0eab Eric Dumazet    2017-10-05  3168  
^1da177e4 Linus Torvalds  2005-04-16  3169  #define skb_queue_walk(queue, skb) \
^1da177e4 Linus Torvalds  2005-04-16  3170              for (skb = 
(queue)->next;                                       \
a1e4891fd Linus Torvalds  2011-05-22  3171                   skb != (struct 
sk_buff *)(queue);                          \
^1da177e4 Linus Torvalds  2005-04-16  3172                   skb = skb->next)
^1da177e4 Linus Torvalds  2005-04-16  3173  
46f8914e5 James Chapman   2007-04-30  3174  #define skb_queue_walk_safe(queue, 
skb, tmp)                                        \
46f8914e5 James Chapman   2007-04-30  3175              for (skb = 
(queue)->next, tmp = skb->next;                      \
46f8914e5 James Chapman   2007-04-30  3176                   skb != (struct 
sk_buff *)(queue);                          \
46f8914e5 James Chapman   2007-04-30  3177                   skb = tmp, tmp = 
skb->next)
46f8914e5 James Chapman   2007-04-30  3178  
1164f52a2 David S. Miller 2008-09-23  3179  #define skb_queue_walk_from(queue, 
skb)                                             \
a1e4891fd Linus Torvalds  2011-05-22  3180              for (; skb != (struct 
sk_buff *)(queue);                        \
1164f52a2 David S. Miller 2008-09-23  3181                   skb = skb->next)
1164f52a2 David S. Miller 2008-09-23  3182  
18a4c0eab Eric Dumazet    2017-10-05  3183  #define skb_rbtree_walk(skb, root)  
                                        \
18a4c0eab Eric Dumazet    2017-10-05  3184              for (skb = 
skb_rb_first(root); skb != NULL;                     \
18a4c0eab Eric Dumazet    2017-10-05  3185                   skb = 
skb_rb_next(skb))
18a4c0eab Eric Dumazet    2017-10-05  3186  
18a4c0eab Eric Dumazet    2017-10-05  3187  #define skb_rbtree_walk_from(skb)   
                                        \
18a4c0eab Eric Dumazet    2017-10-05  3188              for (; skb != NULL;     
                                        \
18a4c0eab Eric Dumazet    2017-10-05  3189                   skb = 
skb_rb_next(skb))
18a4c0eab Eric Dumazet    2017-10-05  3190  
18a4c0eab Eric Dumazet    2017-10-05  3191  #define 
skb_rbtree_walk_from_safe(skb, tmp)                                 \
18a4c0eab Eric Dumazet    2017-10-05  3192              for (; tmp = skb ? 
skb_rb_next(skb) : NULL, (skb != NULL);      \
18a4c0eab Eric Dumazet    2017-10-05  3193                   skb = tmp)
18a4c0eab Eric Dumazet    2017-10-05  3194  
1164f52a2 David S. Miller 2008-09-23  3195  #define 
skb_queue_walk_from_safe(queue, skb, tmp)                           \
1164f52a2 David S. Miller 2008-09-23 @3196              for (tmp = skb->next;   
                                        \
1164f52a2 David S. Miller 2008-09-23  3197                   skb != (struct 
sk_buff *)(queue);                          \
1164f52a2 David S. Miller 2008-09-23  3198                   skb = tmp, tmp = 
skb->next)
1164f52a2 David S. Miller 2008-09-23  3199  

:::::: The code at line 3196 was first introduced by commit
:::::: 1164f52a244204830c7625b3c22812781996d7b4 net: Add skb_queue_walk_from() 
and skb_queue_walk_from_safe().

:::::: TO: David S. Miller <da...@davemloft.net>
:::::: CC: David S. Miller <da...@davemloft.net>

---
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