Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp5469074pxu; Tue, 22 Dec 2020 19:06:08 -0800 (PST) X-Google-Smtp-Source: ABdhPJyjsajcEyhLw9dz6rx1zx89KieHrFi7am3lmwBNjhw76YWEyqn8l4Yx7mP49iVBwJEGbMeQ X-Received: by 2002:a17:906:b252:: with SMTP id ce18mr22494121ejb.5.1608692767891; Tue, 22 Dec 2020 19:06:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608692767; cv=none; d=google.com; s=arc-20160816; b=ZX95GZ5HMTwLEUa3p7aKRCRYcAwkWcfZ3U6mm6+Aj8FhkkjXsFL+gTSaOcW05oRCVZ 0GGWV7prW3P0v31d7Ux2MSSJdOlvUxKjmInPXS43rCfv0bP9D6sA8+wfi+wkoZXzpel5 rCUHfHM84tVtK/EMZW4IriArnyM27aIeYT1ndAhGo1Qv1rQ25MNXpUfXBEScupFAFLvj IIU1Eib7Y9bS/346P1rudUVqg4NjmeT7knHTGMF4mSrq8usHNtCaEkIrPSh/CBneoNqI C6vKcEKZgN5w02z7ST34oBEIn+vIVi/4x24JeTs1MQVU/VchYcoCGpwpyL9+tXzeewHg yueQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WETbmFNO5LUimpFnrARk0dXyDKBGstTpW1CyjGqvIAo=; b=w4PYqKIJofp0+bg8p/I572gFBT23E6vsJw6a9L09LLnMyeytrGOjDQUFbIT6sfhDtI otX6SgCmNRumyCYEP7BXL9e21Rl+YZf8vIJaZMqDZ3H+IE3duPTjNxCTovfnFQ4UZTLk bAlE2DjzNBI9FM/ZHvNzMEWgvLq2QmkgpgHQ6WX7TG2Po9acLOQ0cmaXgpCNe9QTiicu MYZQh0u8P5hz/rxAymRHXAImLt525EI0fs9n2smu79c9SrH1uFvPztZ+AsBT0kyfZ+Ul Aps6HUAQFN2iCK3FjZhhI4fUZvd8EDIKs8YlX6gm88KxNjn2yLOhbpnq93TEZAvGLb0K Byhw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aeAIVOky; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rv27si10893405ejb.720.2020.12.22.19.05.45; Tue, 22 Dec 2020 19:06:07 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aeAIVOky; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731579AbgLWDDt (ORCPT + 99 others); Tue, 22 Dec 2020 22:03:49 -0500 Received: from mail.kernel.org ([198.145.29.99]:45452 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728626AbgLWCT1 (ORCPT ); Tue, 22 Dec 2020 21:19:27 -0500 Received: by mail.kernel.org (Postfix) with ESMTPSA id 1120823357; Wed, 23 Dec 2020 02:18:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1608689930; bh=L7OzlzhzJeRLg/LF4grC5PTeNyaU23gvMseOIVwHHhM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=aeAIVOkyp/vLTWZOLWOk4z+jYJYGNBCjZaWrARg1jpUggdP2uokdt9qS682vQD1o5 j9jlNVOX5fHoqR/FQVyVutEUETzfPi60YlXuQza8Dhkz70juuhGGbeIJvX0PYe3J7l wH7lO79um0dwOLQ0QHc3uQkDDLHym3w0x2+Wkx1+ADCbZvuqAk2rlnq2LamnV9+xDk Zk4uIq4PcgScmmp1MXUHZzouCgT3Cg6Ukq8mSBe1OHf0kGEYuMcxvU1iH3l/5MwsRe Zf0KH5Rq1p4Q/RHklyCMC0if7LyG1/arMkY3LqG27vlCZ7RV0T5i5wty0SSjBOYTjT AzvAHcZ7YbejQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Alexander Lobakin , Jakub Kicinski , Sasha Levin , netdev@vger.kernel.org Subject: [PATCH AUTOSEL 5.4 029/130] net: skb_vlan_untag(): don't reset transport offset if set by GRO layer Date: Tue, 22 Dec 2020 21:16:32 -0500 Message-Id: <20201223021813.2791612-29-sashal@kernel.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20201223021813.2791612-1-sashal@kernel.org> References: <20201223021813.2791612-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Alexander Lobakin [ Upstream commit 8be33ecfc1ffd2da20cc29e957e4cb6eb99310cb ] Similar to commit fda55eca5a33f ("net: introduce skb_transport_header_was_set()"), avoid resetting transport offsets that were already set by GRO layer. This not only mirrors the behavior of __netif_receive_skb_core(), but also makes sense when it comes to UDP GSO fraglists forwarding: transport offset of such skbs is set only once by GRO receive callback and remains untouched and correct up to the xmitting driver in 1:1 case, but becomes junk after untagging in ingress VLAN case and breaks UDP GSO offload. This does not happen after this change, and all types of forwarding of UDP GSO fraglists work as expected. Since v1 [1]: - keep the code 1:1 with __netif_receive_skb_core() (Jakub). [1] https://lore.kernel.org/netdev/zYurwsZRN7BkqSoikWQLVqHyxz18h4LhHU4NFa2Vw@cp4-web-038.plabs.ch Signed-off-by: Alexander Lobakin Link: https://lore.kernel.org/r/7JgIkgEztzt0W6ZtC9V9Cnk5qfkrUFYcpN871syCi8@cp4-web-040.plabs.ch Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- net/core/skbuff.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c index a0486dcf5425b..5f9035f462445 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -5333,7 +5333,8 @@ struct sk_buff *skb_vlan_untag(struct sk_buff *skb) goto err_free; skb_reset_network_header(skb); - skb_reset_transport_header(skb); + if (!skb_transport_header_was_set(skb)) + skb_reset_transport_header(skb); skb_reset_mac_len(skb); return skb; -- 2.27.0