public inbox for llvm@lists.linux.dev
 help / color / mirror / Atom feed
* [deller-parisc:for-next 2/9] net/ipv4/af_inet.c:1503:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true
@ 2026-04-08  2:32 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-04-08  2:32 UTC (permalink / raw)
  To: Helge Deller; +Cc: llvm, oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git for-next
head:   bc8a19a194d5a72df5982c04f8a9e7bcff1306ca
commit: 595407f94f5e5b778a349bd5a323c5051920b864 [2/9] net: Avoid unaligned access in inet_gro_receive()
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260408/202604081003.KPd0fpBI-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260408/202604081003.KPd0fpBI-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604081003.KPd0fpBI-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> net/ipv4/af_inet.c:1503:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1503 |         if (unlikely(ip_fast_csum((u8 *)iph, 5)))
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:77:22: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1503:2: note: remove the 'if' if its condition is always false
    1503 |         if (unlikely(ip_fast_csum((u8 *)iph, 5)))
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1504 |                 goto out;
         |                 ~~~~~~~~
   net/ipv4/af_inet.c:1500:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1500 |         if (ip_is_fragment(iph))
         |             ^~~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1500:2: note: remove the 'if' if its condition is always false
    1500 |         if (ip_is_fragment(iph))
         |         ^~~~~~~~~~~~~~~~~~~~~~~~
    1501 |                 goto out;
         |                 ~~~~~~~~
   net/ipv4/af_inet.c:1497:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1497 |         if (*(u8 *)iph != 0x45)
         |             ^~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1497:2: note: remove the 'if' if its condition is always false
    1497 |         if (*(u8 *)iph != 0x45)
         |         ^~~~~~~~~~~~~~~~~~~~~~~
    1498 |                 goto out;
         |                 ~~~~~~~~
   net/ipv4/af_inet.c:1494:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1494 |         if (!ops || !ops->callbacks.gro_receive)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1494:2: note: remove the 'if' if its condition is always false
    1494 |         if (!ops || !ops->callbacks.gro_receive)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1495 |                 goto out;
         |                 ~~~~~~~~
>> net/ipv4/af_inet.c:1494:6: warning: variable 'flush' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
    1494 |         if (!ops || !ops->callbacks.gro_receive)
         |             ^~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1494:6: note: remove the '||' if its condition is always false
    1494 |         if (!ops || !ops->callbacks.gro_receive)
         |             ^~~~~~~
   net/ipv4/af_inet.c:1488:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1488 |         if (unlikely(!iph))
         |             ^~~~~~~~~~~~~~
   include/linux/compiler.h:77:22: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1488:2: note: remove the 'if' if its condition is always false
    1488 |         if (unlikely(!iph))
         |         ^~~~~~~~~~~~~~~~~~~
    1489 |                 goto out;
         |                 ~~~~~~~~
   net/ipv4/af_inet.c:1482:13: note: initialize the variable 'flush' to silence this warning
    1482 |         __u16 flush;
         |                    ^
         |                     = 0
   6 warnings generated.


vim +1503 net/ipv4/af_inet.c

418e897e0716b2 Willem de Bruijn 2019-02-20  1473  
d4546c2509b1e9 David Miller     2018-06-24  1474  struct sk_buff *inet_gro_receive(struct list_head *head, struct sk_buff *skb)
73cc19f1556b95 Herbert Xu       2008-12-15  1475  {
bca49f843eac59 Vlad Yasevich    2012-11-15  1476  	const struct net_offload *ops;
d4546c2509b1e9 David Miller     2018-06-24  1477  	struct sk_buff *pp = NULL;
b71d1d426d263b Eric Dumazet     2011-04-22  1478  	const struct iphdr *iph;
d4546c2509b1e9 David Miller     2018-06-24  1479  	struct sk_buff *p;
a5b1cf288d4200 Herbert Xu       2009-05-26  1480  	unsigned int hlen;
a5b1cf288d4200 Herbert Xu       2009-05-26  1481  	unsigned int off;
595407f94f5e5b Helge Deller     2026-04-07  1482  	__u16 flush;
73cc19f1556b95 Herbert Xu       2008-12-15  1483  	int proto;
73cc19f1556b95 Herbert Xu       2008-12-15  1484  
a5b1cf288d4200 Herbert Xu       2009-05-26  1485  	off = skb_gro_offset(skb);
a5b1cf288d4200 Herbert Xu       2009-05-26  1486  	hlen = off + sizeof(*iph);
35ffb66547295c Richard Gobert   2022-08-23  1487  	iph = skb_gro_header(skb, hlen, off);
86911732d3996a Herbert Xu       2009-01-29  1488  	if (unlikely(!iph))
73cc19f1556b95 Herbert Xu       2008-12-15  1489  		goto out;
73cc19f1556b95 Herbert Xu       2008-12-15  1490  
f9242b6b28d612 David S. Miller  2012-06-19  1491  	proto = iph->protocol;
73cc19f1556b95 Herbert Xu       2008-12-15  1492  
bca49f843eac59 Vlad Yasevich    2012-11-15  1493  	ops = rcu_dereference(inet_offloads[proto]);
f191a1d17f2270 Vlad Yasevich    2012-11-15 @1494  	if (!ops || !ops->callbacks.gro_receive)
fc1ca3348a74a1 Eric Dumazet     2021-11-23  1495  		goto out;
73cc19f1556b95 Herbert Xu       2008-12-15  1496  
a5ad24be728d43 Herbert Xu       2009-02-08  1497  	if (*(u8 *)iph != 0x45)
fc1ca3348a74a1 Eric Dumazet     2021-11-23  1498  		goto out;
73cc19f1556b95 Herbert Xu       2008-12-15  1499  
9b83e0319840ec Steffen Klassert 2017-04-28  1500  	if (ip_is_fragment(iph))
fc1ca3348a74a1 Eric Dumazet     2021-11-23  1501  		goto out;
9b83e0319840ec Steffen Klassert 2017-04-28  1502  
a9e050f4e7f9d3 Eric Dumazet     2012-08-05 @1503  	if (unlikely(ip_fast_csum((u8 *)iph, 5)))
fc1ca3348a74a1 Eric Dumazet     2021-11-23  1504  		goto out;
73cc19f1556b95 Herbert Xu       2008-12-15  1505  
b1a78b9b98862c Xin Long         2023-01-28  1506  	NAPI_GRO_CB(skb)->proto = proto;
595407f94f5e5b Helge Deller     2026-04-07  1507  	flush = (get_unaligned_be16(&iph->tot_len) ^ skb_gro_len(skb)) |
595407f94f5e5b Helge Deller     2026-04-07  1508  	        (get_unaligned_be16(&iph->frag_off) & ~IP_DF);
73cc19f1556b95 Herbert Xu       2008-12-15  1509  
d4546c2509b1e9 David Miller     2018-06-24  1510  	list_for_each_entry(p, head, list) {
73cc19f1556b95 Herbert Xu       2008-12-15  1511  		struct iphdr *iph2;
73cc19f1556b95 Herbert Xu       2008-12-15  1512  
73cc19f1556b95 Herbert Xu       2008-12-15  1513  		if (!NAPI_GRO_CB(p)->same_flow)
73cc19f1556b95 Herbert Xu       2008-12-15  1514  			continue;
73cc19f1556b95 Herbert Xu       2008-12-15  1515  
299603e8370a93 Jerry Chu        2013-12-11  1516  		iph2 = (struct iphdr *)(p->data + off);
299603e8370a93 Jerry Chu        2013-12-11  1517  		/* The above works because, with the exception of the top
299603e8370a93 Jerry Chu        2013-12-11  1518  		 * (inner most) layer, we only aggregate pkts with the same
299603e8370a93 Jerry Chu        2013-12-11  1519  		 * hdr length so all the hdrs we'll need to verify will start
299603e8370a93 Jerry Chu        2013-12-11  1520  		 * at the same offset.
299603e8370a93 Jerry Chu        2013-12-11  1521  		 */
a5ad24be728d43 Herbert Xu       2009-02-08  1522  		if ((iph->protocol ^ iph2->protocol) |
595407f94f5e5b Helge Deller     2026-04-07  1523  		    (get_unaligned(&iph->saddr) ^ get_unaligned(&iph2->saddr)) |
595407f94f5e5b Helge Deller     2026-04-07  1524  		    (get_unaligned(&iph->daddr) ^ get_unaligned(&iph2->daddr))) {
73cc19f1556b95 Herbert Xu       2008-12-15  1525  			NAPI_GRO_CB(p)->same_flow = 0;
73cc19f1556b95 Herbert Xu       2008-12-15  1526  			continue;
73cc19f1556b95 Herbert Xu       2008-12-15  1527  		}
73cc19f1556b95 Herbert Xu       2008-12-15  1528  	}
73cc19f1556b95 Herbert Xu       2008-12-15  1529  
73cc19f1556b95 Herbert Xu       2008-12-15  1530  	NAPI_GRO_CB(skb)->flush |= flush;
be008726d0ac33 Willem de Bruijn 2024-05-23  1531  	NAPI_GRO_CB(skb)->network_offsets[NAPI_GRO_CB(skb)->encap_mark] = off;
299603e8370a93 Jerry Chu        2013-12-11  1532  
2c804d0f8fc779 Eric Dumazet     2014-09-30  1533  	/* Note : No need to call skb_gro_postpull_rcsum() here,
2c804d0f8fc779 Eric Dumazet     2014-09-30  1534  	 * as we already checked checksum over ipv4 header was 0
2c804d0f8fc779 Eric Dumazet     2014-09-30  1535  	 */
86911732d3996a Herbert Xu       2009-01-29  1536  	skb_gro_pull(skb, sizeof(*iph));
86911732d3996a Herbert Xu       2009-01-29  1537  	skb_set_transport_header(skb, skb_gro_offset(skb));
73cc19f1556b95 Herbert Xu       2008-12-15  1538  
028e0a4766844e Paolo Abeni      2018-12-14  1539  	pp = indirect_call_gro_receive(tcp4_gro_receive, udp4_gro_receive,
028e0a4766844e Paolo Abeni      2018-12-14  1540  				       ops->callbacks.gro_receive, head, skb);
73cc19f1556b95 Herbert Xu       2008-12-15  1541  
73cc19f1556b95 Herbert Xu       2008-12-15  1542  out:
5f114163f2f5eb Steffen Klassert 2017-02-15  1543  	skb_gro_flush_final(skb, pp, flush);
73cc19f1556b95 Herbert Xu       2008-12-15  1544  
73cc19f1556b95 Herbert Xu       2008-12-15  1545  	return pp;
73cc19f1556b95 Herbert Xu       2008-12-15  1546  }
73cc19f1556b95 Herbert Xu       2008-12-15  1547  

:::::: The code at line 1503 was first introduced by commit
:::::: a9e050f4e7f9d36afe0dcc0bddba864ee442715e net: tcp: GRO should be ECN friendly

:::::: TO: Eric Dumazet <edumazet@google.com>
:::::: CC: David S. Miller <davem@davemloft.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread
* [deller-parisc:for-next 2/9] net/ipv4/af_inet.c:1503:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true
@ 2026-04-08  2:53 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-04-08  2:53 UTC (permalink / raw)
  To: Helge Deller; +Cc: llvm, oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git for-next
head:   bc8a19a194d5a72df5982c04f8a9e7bcff1306ca
commit: 595407f94f5e5b778a349bd5a323c5051920b864 [2/9] net: Avoid unaligned access in inet_gro_receive()
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260408/202604080419.GgJe0xs5-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260408/202604080419.GgJe0xs5-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202604080419.GgJe0xs5-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> net/ipv4/af_inet.c:1503:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1503 |         if (unlikely(ip_fast_csum((u8 *)iph, 5)))
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:77:22: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1503:2: note: remove the 'if' if its condition is always false
    1503 |         if (unlikely(ip_fast_csum((u8 *)iph, 5)))
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1504 |                 goto out;
         |                 ~~~~~~~~
   net/ipv4/af_inet.c:1500:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1500 |         if (ip_is_fragment(iph))
         |             ^~~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1500:2: note: remove the 'if' if its condition is always false
    1500 |         if (ip_is_fragment(iph))
         |         ^~~~~~~~~~~~~~~~~~~~~~~~
    1501 |                 goto out;
         |                 ~~~~~~~~
   net/ipv4/af_inet.c:1497:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1497 |         if (*(u8 *)iph != 0x45)
         |             ^~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1497:2: note: remove the 'if' if its condition is always false
    1497 |         if (*(u8 *)iph != 0x45)
         |         ^~~~~~~~~~~~~~~~~~~~~~~
    1498 |                 goto out;
         |                 ~~~~~~~~
   net/ipv4/af_inet.c:1494:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1494 |         if (!ops || !ops->callbacks.gro_receive)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1494:2: note: remove the 'if' if its condition is always false
    1494 |         if (!ops || !ops->callbacks.gro_receive)
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1495 |                 goto out;
         |                 ~~~~~~~~
>> net/ipv4/af_inet.c:1494:6: warning: variable 'flush' is used uninitialized whenever '||' condition is true [-Wsometimes-uninitialized]
    1494 |         if (!ops || !ops->callbacks.gro_receive)
         |             ^~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1494:6: note: remove the '||' if its condition is always false
    1494 |         if (!ops || !ops->callbacks.gro_receive)
         |             ^~~~~~~
   net/ipv4/af_inet.c:1488:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
    1488 |         if (unlikely(!iph))
         |             ^~~~~~~~~~~~~~
   include/linux/compiler.h:77:22: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/af_inet.c:1543:31: note: uninitialized use occurs here
    1543 |         skb_gro_flush_final(skb, pp, flush);
         |                                      ^~~~~
   net/ipv4/af_inet.c:1488:2: note: remove the 'if' if its condition is always false
    1488 |         if (unlikely(!iph))
         |         ^~~~~~~~~~~~~~~~~~~
    1489 |                 goto out;
         |                 ~~~~~~~~
   net/ipv4/af_inet.c:1482:13: note: initialize the variable 'flush' to silence this warning
    1482 |         __u16 flush;
         |                    ^
         |                     = 0
   6 warnings generated.


vim +1503 net/ipv4/af_inet.c

418e897e0716b2 Willem de Bruijn 2019-02-20  1473  
d4546c2509b1e9 David Miller     2018-06-24  1474  struct sk_buff *inet_gro_receive(struct list_head *head, struct sk_buff *skb)
73cc19f1556b95 Herbert Xu       2008-12-15  1475  {
bca49f843eac59 Vlad Yasevich    2012-11-15  1476  	const struct net_offload *ops;
d4546c2509b1e9 David Miller     2018-06-24  1477  	struct sk_buff *pp = NULL;
b71d1d426d263b Eric Dumazet     2011-04-22  1478  	const struct iphdr *iph;
d4546c2509b1e9 David Miller     2018-06-24  1479  	struct sk_buff *p;
a5b1cf288d4200 Herbert Xu       2009-05-26  1480  	unsigned int hlen;
a5b1cf288d4200 Herbert Xu       2009-05-26  1481  	unsigned int off;
595407f94f5e5b Helge Deller     2026-04-07  1482  	__u16 flush;
73cc19f1556b95 Herbert Xu       2008-12-15  1483  	int proto;
73cc19f1556b95 Herbert Xu       2008-12-15  1484  
a5b1cf288d4200 Herbert Xu       2009-05-26  1485  	off = skb_gro_offset(skb);
a5b1cf288d4200 Herbert Xu       2009-05-26  1486  	hlen = off + sizeof(*iph);
35ffb66547295c Richard Gobert   2022-08-23  1487  	iph = skb_gro_header(skb, hlen, off);
86911732d3996a Herbert Xu       2009-01-29  1488  	if (unlikely(!iph))
73cc19f1556b95 Herbert Xu       2008-12-15  1489  		goto out;
73cc19f1556b95 Herbert Xu       2008-12-15  1490  
f9242b6b28d612 David S. Miller  2012-06-19  1491  	proto = iph->protocol;
73cc19f1556b95 Herbert Xu       2008-12-15  1492  
bca49f843eac59 Vlad Yasevich    2012-11-15  1493  	ops = rcu_dereference(inet_offloads[proto]);
f191a1d17f2270 Vlad Yasevich    2012-11-15 @1494  	if (!ops || !ops->callbacks.gro_receive)
fc1ca3348a74a1 Eric Dumazet     2021-11-23  1495  		goto out;
73cc19f1556b95 Herbert Xu       2008-12-15  1496  
a5ad24be728d43 Herbert Xu       2009-02-08  1497  	if (*(u8 *)iph != 0x45)
fc1ca3348a74a1 Eric Dumazet     2021-11-23  1498  		goto out;
73cc19f1556b95 Herbert Xu       2008-12-15  1499  
9b83e0319840ec Steffen Klassert 2017-04-28  1500  	if (ip_is_fragment(iph))
fc1ca3348a74a1 Eric Dumazet     2021-11-23  1501  		goto out;
9b83e0319840ec Steffen Klassert 2017-04-28  1502  
a9e050f4e7f9d3 Eric Dumazet     2012-08-05 @1503  	if (unlikely(ip_fast_csum((u8 *)iph, 5)))
fc1ca3348a74a1 Eric Dumazet     2021-11-23  1504  		goto out;
73cc19f1556b95 Herbert Xu       2008-12-15  1505  
b1a78b9b98862c Xin Long         2023-01-28  1506  	NAPI_GRO_CB(skb)->proto = proto;
595407f94f5e5b Helge Deller     2026-04-07  1507  	flush = (get_unaligned_be16(&iph->tot_len) ^ skb_gro_len(skb)) |
595407f94f5e5b Helge Deller     2026-04-07  1508  	        (get_unaligned_be16(&iph->frag_off) & ~IP_DF);
73cc19f1556b95 Herbert Xu       2008-12-15  1509  
d4546c2509b1e9 David Miller     2018-06-24  1510  	list_for_each_entry(p, head, list) {
73cc19f1556b95 Herbert Xu       2008-12-15  1511  		struct iphdr *iph2;
73cc19f1556b95 Herbert Xu       2008-12-15  1512  
73cc19f1556b95 Herbert Xu       2008-12-15  1513  		if (!NAPI_GRO_CB(p)->same_flow)
73cc19f1556b95 Herbert Xu       2008-12-15  1514  			continue;
73cc19f1556b95 Herbert Xu       2008-12-15  1515  
299603e8370a93 Jerry Chu        2013-12-11  1516  		iph2 = (struct iphdr *)(p->data + off);
299603e8370a93 Jerry Chu        2013-12-11  1517  		/* The above works because, with the exception of the top
299603e8370a93 Jerry Chu        2013-12-11  1518  		 * (inner most) layer, we only aggregate pkts with the same
299603e8370a93 Jerry Chu        2013-12-11  1519  		 * hdr length so all the hdrs we'll need to verify will start
299603e8370a93 Jerry Chu        2013-12-11  1520  		 * at the same offset.
299603e8370a93 Jerry Chu        2013-12-11  1521  		 */
a5ad24be728d43 Herbert Xu       2009-02-08  1522  		if ((iph->protocol ^ iph2->protocol) |
595407f94f5e5b Helge Deller     2026-04-07  1523  		    (get_unaligned(&iph->saddr) ^ get_unaligned(&iph2->saddr)) |
595407f94f5e5b Helge Deller     2026-04-07  1524  		    (get_unaligned(&iph->daddr) ^ get_unaligned(&iph2->daddr))) {
73cc19f1556b95 Herbert Xu       2008-12-15  1525  			NAPI_GRO_CB(p)->same_flow = 0;
73cc19f1556b95 Herbert Xu       2008-12-15  1526  			continue;
73cc19f1556b95 Herbert Xu       2008-12-15  1527  		}
73cc19f1556b95 Herbert Xu       2008-12-15  1528  	}
73cc19f1556b95 Herbert Xu       2008-12-15  1529  
73cc19f1556b95 Herbert Xu       2008-12-15  1530  	NAPI_GRO_CB(skb)->flush |= flush;
be008726d0ac33 Willem de Bruijn 2024-05-23  1531  	NAPI_GRO_CB(skb)->network_offsets[NAPI_GRO_CB(skb)->encap_mark] = off;
299603e8370a93 Jerry Chu        2013-12-11  1532  
2c804d0f8fc779 Eric Dumazet     2014-09-30  1533  	/* Note : No need to call skb_gro_postpull_rcsum() here,
2c804d0f8fc779 Eric Dumazet     2014-09-30  1534  	 * as we already checked checksum over ipv4 header was 0
2c804d0f8fc779 Eric Dumazet     2014-09-30  1535  	 */
86911732d3996a Herbert Xu       2009-01-29  1536  	skb_gro_pull(skb, sizeof(*iph));
86911732d3996a Herbert Xu       2009-01-29  1537  	skb_set_transport_header(skb, skb_gro_offset(skb));
73cc19f1556b95 Herbert Xu       2008-12-15  1538  
028e0a4766844e Paolo Abeni      2018-12-14  1539  	pp = indirect_call_gro_receive(tcp4_gro_receive, udp4_gro_receive,
028e0a4766844e Paolo Abeni      2018-12-14  1540  				       ops->callbacks.gro_receive, head, skb);
73cc19f1556b95 Herbert Xu       2008-12-15  1541  
73cc19f1556b95 Herbert Xu       2008-12-15  1542  out:
5f114163f2f5eb Steffen Klassert 2017-02-15 @1543  	skb_gro_flush_final(skb, pp, flush);
73cc19f1556b95 Herbert Xu       2008-12-15  1544  
73cc19f1556b95 Herbert Xu       2008-12-15  1545  	return pp;
73cc19f1556b95 Herbert Xu       2008-12-15  1546  }
73cc19f1556b95 Herbert Xu       2008-12-15  1547  

:::::: The code at line 1503 was first introduced by commit
:::::: a9e050f4e7f9d36afe0dcc0bddba864ee442715e net: tcp: GRO should be ECN friendly

:::::: TO: Eric Dumazet <edumazet@google.com>
:::::: CC: David S. Miller <davem@davemloft.net>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-04-08  2:53 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-08  2:32 [deller-parisc:for-next 2/9] net/ipv4/af_inet.c:1503:6: warning: variable 'flush' is used uninitialized whenever 'if' condition is true kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2026-04-08  2:53 kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox