]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
virtio_net: fix alignment for virtio_net_hdr_v1_hash
authorMichael S. Tsirkin <mst@redhat.com>
Fri, 31 Oct 2025 06:05:51 +0000 (14:05 +0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 5 Nov 2025 01:14:07 +0000 (17:14 -0800)
commitc3838262b824c71c145cd3668722e99a69bc9cd9
tree5ac686699c9fe70fd2eb7d2467f86f02376b34e4
parente120f46768d98151ece8756ebd688b0e43dc8b29
virtio_net: fix alignment for virtio_net_hdr_v1_hash

Changing alignment of header would mean it's no longer safe to cast a
2 byte aligned pointer between formats. Use two 16 bit fields to make
it 2 byte aligned as previously.

This fixes the performance regression since
commit ("virtio_net: enable gso over UDP tunnel support.") as it uses
virtio_net_hdr_v1_hash_tunnel which embeds
virtio_net_hdr_v1_hash. Pktgen in guest + XDP_DROP on TAP + vhost_net
shows the TX PPS is recovered from 2.4Mpps to 4.45Mpps.

Fixes: 56a06bd40fab ("virtio_net: enable gso over UDP tunnel support.")
Cc: stable@vger.kernel.org
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Tested-by: Lei Yang <leiyang@redhat.com>
Link: https://patch.msgid.link/20251031060551.126-1-jasowang@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/virtio_net.c
include/linux/virtio_net.h
include/uapi/linux/virtio_net.h