virtio-net regression for aarch64 guests
Host environment
- Operating system: Pop! OS 22.04 LTS
- OS/kernel version: Linux 6.9.3
- Architecture: x86
- QEMU flavor: qemu-system-aarch64
- QEMU version: 9.2
- QEMU command line: qemu-system-aarch64 -kernel kernel-6.12.7 -append "root=/dev/vda1 console=ttyAMA0 ro" -machine type=virt -cpu cortex-a76 -smp cpus=4 -m size=30720 -drive file=lbl.qcow2,index=0,media=disk -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device virtio-net-device,netdev=net0,mac=aa:bb:cc:dd:ee:01 -nographic
Emulated/Virtualized environment
- Operating system: Custom Linux
- OS/kernel version: 6.12.7
- Architecture: aarch64
Description of problem
The host system is running DHCP via dnsmasq 2.88. QEMU 9.1 works properly and completes DHCP handshake. QEMU 9.2 fails the DHCP handshake after DHCPOFFER with "eth0: checksum failure from 10.2.83.1".
I found by bisecting that the issue was introduced by commit 7987d2be "virtio-net: Copy received header to buffer". Reverting that commit on 9.2.0 corrects the issue.