[PATCH v2 0/3][Yakkety][SRU] virtio: fix xmit packet flag settings
Jay Vosburgh
jay.vosburgh at canonical.com
Thu Apr 20 16:14:25 UTC 2017
BugLink: https://bugs.launchpad.net/bugs/1683947
Beginning with fd2a0437dc33 ("virtio_net: introduce
virtio_net_hdr_{from,to}_skb"), virtio_net incorrectly sets
VIRTIO_NET_HDR_F_DATA_VALID on CHECKSUM_UNNECESSARY packets. If these
packets are modified prior to transmission (e.g., by NAT), they are
dropped by the receving virtio. I suspect (but have not confirmed
experimentally) that this is because the checksum is incorrect after NAT
modifies the packet, but the checksum is not recomputed.
Patch 1/3, 3e9e40e74753 ("virtio_net: Simplify call sites for
virtio_net_hdr_{from, to}_skb()."), is a prerequisite to permit patch 3/3,
6391a4481ba0, to apply more easily and end up with the final code closer
to mainline.
Patch 2/3, 501db511397f ("virtio: don't set
VIRTIO_NET_HDR_F_DATA_VALID on xmit") was found by bisect to initially
resolve the issue.
Patch 3/3, 6391a4481ba0 ("virtio-net: restore
VIRTIO_HDR_F_DATA_VALID on receiving") is a follow-on to 501db511397f for
the complete fix.
As the issue was introduced during 4.8-rc and resolved before 4.10
release, this bug exists only in the Ubuntu Yakkety 4.8 kernel series.
v2: fixed cherry pick commit id in patch 2/3
-J
---
-Jay Vosburgh, jay.vosburgh at canonical.com
More information about the kernel-team
mailing list