From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH net] net: in virtio_net_hdr only add VLAN_HLEN to csum_start if payload holds vlan Date: Thu, 07 Jun 2018 16:22:26 -0400 (EDT) Message-ID: <20180607.162226.260529623268984988.davem@davemloft.net> References: <20180606152301.33240-1-willemdebruijn.kernel@gmail.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, rppt@linux.vnet.ibm.com, herbert@gondor.apana.org.au, anton.ivanov@cambridgegreys.com, willemb@google.com To: willemdebruijn.kernel@gmail.com Return-path: Received: from shards.monkeyblade.net ([184.105.139.130]:33868 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753085AbeFGUW3 (ORCPT ); Thu, 7 Jun 2018 16:22:29 -0400 In-Reply-To: <20180606152301.33240-1-willemdebruijn.kernel@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: From: Willem de Bruijn Date: Wed, 6 Jun 2018 11:23:01 -0400 > From: Willem de Bruijn > > Tun, tap, virtio, packet and uml vector all use struct virtio_net_hdr > to communicate packet metadata to userspace. > > For skbuffs with vlan, the first two return the packet as it may have > existed on the wire, inserting the VLAN tag in the user buffer. Then > virtio_net_hdr.csum_start needs to be adjusted by VLAN_HLEN bytes. > > Commit f09e2249c4f5 ("macvtap: restore vlan header on user read") > added this feature to macvtap. Commit 3ce9b20f1971 ("macvtap: Fix > csum_start when VLAN tags are present") then fixed up csum_start. > > Virtio, packet and uml do not insert the vlan header in the user > buffer. > > When introducing virtio_net_hdr_from_skb to deduplicate filling in > the virtio_net_hdr, the variant from macvtap which adds VLAN_HLEN was > applied uniformly, breaking csum offset for packets with vlan on > virtio and packet. > > Make insertion of VLAN_HLEN optional. Convert the callers to pass it > when needed. > > Fixes: e858fae2b0b8f4 ("virtio_net: use common code for virtio_net_hdr and skb GSO conversion") > Fixes: 1276f24eeef2 ("packet: use common code for virtio_net_hdr and skb GSO conversion") > Signed-off-by: Willem de Bruijn Applied and queued up for -stable, thanks Willem.