CMT: [PATCH 2/3][Yakkety][SRU] virtio: don't set VIRTIO_NET_HDR_F_DATA_VALID on xmit
Colin Ian King
colin.king at canonical.com
Thu Apr 20 07:51:43 UTC 2017
On 20/04/17 00:41, Jay Vosburgh wrote:
> From: Rolf Neugebauer <rolf.neugebauer at docker.com>
>
> BugLink: https://bugs.launchpad.net/bugs/1683947
>
> This patch part reverts fd2a0437dc33 and e858fae2b0b8 which introduced a
> subtle change in how the virtio_net flags are derived from the SKBs
> ip_summed field.
>
> With the above commits, the flags are set to VIRTIO_NET_HDR_F_DATA_VALID
> when ip_summed == CHECKSUM_UNNECESSARY, thus treating it differently to
> ip_summed == CHECKSUM_NONE, which should be the same.
>
> Further, the virtio spec 1.0 / CS04 explicitly says that
> VIRTIO_NET_HDR_F_DATA_VALID must not be set by the driver.
>
> Fixes: fd2a0437dc33 ("virtio_net: introduce virtio_net_hdr_{from,to}_skb")
> Fixes: e858fae2b0b8 (" virtio_net: use common code for virtio_net_hdr and skb GSO conversion")
> Signed-off-by: Rolf Neugebauer <rolf.neugebauer at docker.com>
> Acked-by: Michael S. Tsirkin <mst at redhat.com>
> Signed-off-by: David S. Miller <davem at davemloft.net>
> (cherry picked from 3e9e40e74753346218e8285cf1ecff9ef3a624c6)
> Signed-off-by: Jay Vosburgh <jay.vosburgh at canonical.com>
> ---
> include/linux/virtio_net.h | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h
> index 1c912f85e041..40914bb396e7 100644
> --- a/include/linux/virtio_net.h
> +++ b/include/linux/virtio_net.h
> @@ -91,8 +91,6 @@ static inline int virtio_net_hdr_from_skb(const struct sk_buff *skb,
> skb_checksum_start_offset(skb));
> hdr->csum_offset = __cpu_to_virtio16(little_endian,
> skb->csum_offset);
> - } else if (skb->ip_summed == CHECKSUM_UNNECESSARY) {
> - hdr->flags = VIRTIO_NET_HDR_F_DATA_VALID;
> } /* else everything is zero */
>
> return 0;
>
This is a cherry pick of 501db511397fd6efff3aa5b4e8de415b55559550 and
not 3e9e40e74753346218e8285cf1ecff9ef3a624c6 as reported in the patch.
Apart from that detail, this fix is an upstream fix that looks OK to me.
More information about the kernel-team
mailing list