From: David S. Miller Date: Sun, 24 Feb 2019 19:48:04 +0000 (-0800) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net X-Git-Tag: Ubuntu-5.2.0-15.16~2488^2~121 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=70f3522614e60b6125eff5f9dd7c887543812187;p=mirror_ubuntu-eoan-kernel.git Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Three conflicts, one of which, for marvell10g.c is non-trivial and requires some follow-up from Heiner or someone else. The issue is that Heiner converted the marvell10g driver over to use the generic c45 code as much as possible. However, in 'net' a bug fix appeared which makes sure that a new local mask (MDIO_AN_10GBT_CTRL_ADV_NBT_MASK) with value 0x01e0 is cleared. Signed-off-by: David S. Miller --- 70f3522614e60b6125eff5f9dd7c887543812187 diff --cc include/linux/virtio_net.h index 6728bf581e98,e0348cb0a1dd..0d1fe9297ac6 --- a/include/linux/virtio_net.h +++ b/include/linux/virtio_net.h @@@ -61,10 -61,20 +61,20 @@@ static inline int virtio_net_hdr_to_skb /* gso packets without NEEDS_CSUM do not set transport_offset. * probe and drop if does not match one of the above types. */ - if (gso_type) { + if (gso_type && skb->network_header) { + if (!skb->protocol) + virtio_net_hdr_set_proto(skb, hdr); + retry: - skb_probe_transport_header(skb, -1); + skb_probe_transport_header(skb); - if (!skb_transport_header_was_set(skb)) + if (!skb_transport_header_was_set(skb)) { + /* UFO does not specify ipv4 or 6: try both */ + if (gso_type & SKB_GSO_UDP && + skb->protocol == htons(ETH_P_IP)) { + skb->protocol = htons(ETH_P_IPV6); + goto retry; + } return -EINVAL; + } } }