All of lore.kernel.org
 help / color / mirror / Atom feed
* [deller-parisc:for-next 2/9] net/ipv4/af_inet.c:1523:49: sparse: sparse: restricted __be32 degrades to integer
@ 2026-04-08  5:14 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-04-08  5:14 UTC (permalink / raw)
  To: Helge Deller; +Cc: 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: i386-randconfig-r111-20260408 (https://download.01.org/0day-ci/archive/20260408/202604081313.ceFDMEFQ-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260408/202604081313.ceFDMEFQ-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/202604081313.ceFDMEFQ-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> net/ipv4/af_inet.c:1523:49: sparse: sparse: restricted __be32 degrades to integer
   net/ipv4/af_inet.c:1524:49: sparse: sparse: restricted __be32 degrades to integer

vim +1523 net/ipv4/af_inet.c

  1473	
  1474	struct sk_buff *inet_gro_receive(struct list_head *head, struct sk_buff *skb)
  1475	{
  1476		const struct net_offload *ops;
  1477		struct sk_buff *pp = NULL;
  1478		const struct iphdr *iph;
  1479		struct sk_buff *p;
  1480		unsigned int hlen;
  1481		unsigned int off;
  1482		__u16 flush;
  1483		int proto;
  1484	
  1485		off = skb_gro_offset(skb);
  1486		hlen = off + sizeof(*iph);
  1487		iph = skb_gro_header(skb, hlen, off);
  1488		if (unlikely(!iph))
  1489			goto out;
  1490	
  1491		proto = iph->protocol;
  1492	
  1493		ops = rcu_dereference(inet_offloads[proto]);
  1494		if (!ops || !ops->callbacks.gro_receive)
  1495			goto out;
  1496	
  1497		if (*(u8 *)iph != 0x45)
  1498			goto out;
  1499	
  1500		if (ip_is_fragment(iph))
  1501			goto out;
  1502	
  1503		if (unlikely(ip_fast_csum((u8 *)iph, 5)))
  1504			goto out;
  1505	
  1506		NAPI_GRO_CB(skb)->proto = proto;
  1507		flush = (get_unaligned_be16(&iph->tot_len) ^ skb_gro_len(skb)) |
  1508		        (get_unaligned_be16(&iph->frag_off) & ~IP_DF);
  1509	
  1510		list_for_each_entry(p, head, list) {
  1511			struct iphdr *iph2;
  1512	
  1513			if (!NAPI_GRO_CB(p)->same_flow)
  1514				continue;
  1515	
  1516			iph2 = (struct iphdr *)(p->data + off);
  1517			/* The above works because, with the exception of the top
  1518			 * (inner most) layer, we only aggregate pkts with the same
  1519			 * hdr length so all the hdrs we'll need to verify will start
  1520			 * at the same offset.
  1521			 */
  1522			if ((iph->protocol ^ iph2->protocol) |
> 1523			    (get_unaligned(&iph->saddr) ^ get_unaligned(&iph2->saddr)) |
  1524			    (get_unaligned(&iph->daddr) ^ get_unaligned(&iph2->daddr))) {
  1525				NAPI_GRO_CB(p)->same_flow = 0;
  1526				continue;
  1527			}
  1528		}
  1529	
  1530		NAPI_GRO_CB(skb)->flush |= flush;
  1531		NAPI_GRO_CB(skb)->network_offsets[NAPI_GRO_CB(skb)->encap_mark] = off;
  1532	
  1533		/* Note : No need to call skb_gro_postpull_rcsum() here,
  1534		 * as we already checked checksum over ipv4 header was 0
  1535		 */
  1536		skb_gro_pull(skb, sizeof(*iph));
  1537		skb_set_transport_header(skb, skb_gro_offset(skb));
  1538	
  1539		pp = indirect_call_gro_receive(tcp4_gro_receive, udp4_gro_receive,
  1540					       ops->callbacks.gro_receive, head, skb);
  1541	
  1542	out:
  1543		skb_gro_flush_final(skb, pp, flush);
  1544	
  1545		return pp;
  1546	}
  1547	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-04-08  5:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-08  5:14 [deller-parisc:for-next 2/9] net/ipv4/af_inet.c:1523:49: sparse: sparse: restricted __be32 degrades to integer kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.