[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202510292058.zgpkfnPq-lkp@intel.com>
Date: Wed, 29 Oct 2025 20:49:03 +0800
From: kernel test robot <lkp@...el.com>
To: Jason Wang <jasowang@...hat.com>, mst@...hat.com,
xuanzhuo@...ux.alibaba.com, eperezma@...hat.com,
andrew+netdev@...n.ch, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com
Cc: oe-kbuild-all@...ts.linux.dev, virtualization@...ts.linux.dev,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
stable@...r.kernel.org
Subject: Re: [PATCH net] virtio_net: fix alignment for virtio_net_hdr_v1_hash
Hi Jason,
kernel test robot noticed the following build errors:
[auto build test ERROR on net/main]
url: https://github.com/intel-lab-lkp/linux/commits/Jason-Wang/virtio_net-fix-alignment-for-virtio_net_hdr_v1_hash/20251029-092814
base: net/main
patch link: https://lore.kernel.org/r/20251029012434.75576-1-jasowang%40redhat.com
patch subject: [PATCH net] virtio_net: fix alignment for virtio_net_hdr_v1_hash
config: openrisc-defconfig (https://download.01.org/0day-ci/archive/20251029/202510292058.zgpkfnPq-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251029/202510292058.zgpkfnPq-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510292058.zgpkfnPq-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from net/packet/af_packet.c:86:
include/linux/virtio_net.h: In function 'virtio_net_hdr_tnl_from_skb':
>> include/linux/virtio_net.h:404:24: error: 'struct virtio_net_hdr_v1_hash' has no member named 'hash_value'; did you mean 'hash_value_lo'?
404 | vhdr->hash_hdr.hash_value = 0;
| ^~~~~~~~~~
| hash_value_lo
vim +404 include/linux/virtio_net.h
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 376
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 377 /*
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 378 * vlan_hlen always refers to the outermost MAC header. That also
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 379 * means it refers to the only MAC header, if the packet does not carry
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 380 * any encapsulation.
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 381 */
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 382 static inline int
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 383 virtio_net_hdr_tnl_from_skb(const struct sk_buff *skb,
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 384 struct virtio_net_hdr_v1_hash_tunnel *vhdr,
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 385 bool tnl_hdr_negotiated,
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 386 bool little_endian,
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 387 int vlan_hlen)
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 388 {
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 389 struct virtio_net_hdr *hdr = (struct virtio_net_hdr *)vhdr;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 390 unsigned int inner_nh, outer_th;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 391 int tnl_gso_type;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 392 int ret;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 393
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 394 tnl_gso_type = skb_shinfo(skb)->gso_type & (SKB_GSO_UDP_TUNNEL |
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 395 SKB_GSO_UDP_TUNNEL_CSUM);
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 396 if (!tnl_gso_type)
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 397 return virtio_net_hdr_from_skb(skb, hdr, little_endian, false,
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 398 vlan_hlen);
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 399
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 400 /* Tunnel support not negotiated but skb ask for it. */
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 401 if (!tnl_hdr_negotiated)
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 402 return -EINVAL;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 403
b2284768c6b32a Jason Wang 2025-10-22 @404 vhdr->hash_hdr.hash_value = 0;
b2284768c6b32a Jason Wang 2025-10-22 405 vhdr->hash_hdr.hash_report = 0;
b2284768c6b32a Jason Wang 2025-10-22 406 vhdr->hash_hdr.padding = 0;
b2284768c6b32a Jason Wang 2025-10-22 407
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 408 /* Let the basic parsing deal with plain GSO features. */
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 409 skb_shinfo(skb)->gso_type &= ~tnl_gso_type;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 410 ret = virtio_net_hdr_from_skb(skb, hdr, true, false, vlan_hlen);
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 411 skb_shinfo(skb)->gso_type |= tnl_gso_type;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 412 if (ret)
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 413 return ret;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 414
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 415 if (skb->protocol == htons(ETH_P_IPV6))
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 416 hdr->gso_type |= VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV6;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 417 else
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 418 hdr->gso_type |= VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV4;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 419
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 420 if (skb_shinfo(skb)->gso_type & SKB_GSO_UDP_TUNNEL_CSUM)
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 421 hdr->flags |= VIRTIO_NET_HDR_F_UDP_TUNNEL_CSUM;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 422
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 423 inner_nh = skb->inner_network_header - skb_headroom(skb);
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 424 outer_th = skb->transport_header - skb_headroom(skb);
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 425 vhdr->inner_nh_offset = cpu_to_le16(inner_nh);
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 426 vhdr->outer_th_offset = cpu_to_le16(outer_th);
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 427 return 0;
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 428 }
a2fb4bc4e2a6a0 Paolo Abeni 2025-07-08 429
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists