Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1806846imm; Mon, 3 Sep 2018 09:57:03 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYZX33l7q1RXZK1uLfKS5C17gYlhz91PzqjqIximXYu1n7VCho+dQgC/L4d+t7vWHI32Rgg X-Received: by 2002:a63:af17:: with SMTP id w23-v6mr26083861pge.47.1535993823891; Mon, 03 Sep 2018 09:57:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1535993823; cv=none; d=google.com; s=arc-20160816; b=XtAm+OVT0ZgEss/ltzE4SSZ1qZOoeTGsvqOOXYiXtDsKBkTq5NfDEhBde8FSMzHVBd 1oICY37ODy5/QFTjJUr05d+xu2ZtURKLQRQx/Aoxf9eXP1zI42yiyuUGo9S9TxJG3vYJ 0aPo855em4uIDNxqoJkz/oRib7826WAu/kQPj/9f6mkd00Rory5LaumTb3M+qPv7LfxT chjFKl8qZIMSKqmxXB3cbJcG/wkT8qMYJ5VIGsIROEsfvbOYawzde+4b9OrbfQBd3o98 G78eKT1cnqGDtciI49+ZxK16k0FxQdND6M4bPfdmg8AqusUjIwjNqoxWMq0jyQQopUun nunA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=pQc5kMAN2uRHFgnkLZYEkWsfTFYc97Xe7QcSqYurjas=; b=NX9kykz9JkeePs28DBsNBGDLTz3s3nSUUro3YQKTU8F5LjRwsTFxivj3SYkDQ/7+TB 5cl6BExyPdpHvtTu2U54exWxxQt9bxa1LDef5L1vO0m8n18eSP+AEY9wr2m4ROcuLSTN nC4MKOesuNc2ldFl3bE3T7CuiXP7REdx5dDG43+XgglwJdneX3zP+lDKyixmCbLcuw/D a6Gj6wmjqYK8hpkRUgOcvitCHfH/AFyH4z8HAB23x+tbqIR8uiEcRK+dFa6OKAERjZcT 8b3yqRSwn+8hd+L6qnMZCkztd2Qjb7reKG1Z6NWwQ022iZklZdURTDoVjjbXhBoURn6R xYgg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e6-v6si18423259pfh.64.2018.09.03.09.56.49; Mon, 03 Sep 2018 09:57:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728884AbeICVOp (ORCPT + 99 others); Mon, 3 Sep 2018 17:14:45 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:38202 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728151AbeICVOo (ORCPT ); Mon, 3 Sep 2018 17:14:44 -0400 Received: from localhost (ip-213-127-74-90.ip.prioritytelecom.net [213.127.74.90]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 8084FCF9; Mon, 3 Sep 2018 16:53:47 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Eyal Birger , Steffen Klassert , Sasha Levin Subject: [PATCH 4.4 03/80] vti6: fix PMTU caching and reporting on xmit Date: Mon, 3 Sep 2018 18:48:41 +0200 Message-Id: <20180903164934.309395709@linuxfoundation.org> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180903164934.171677301@linuxfoundation.org> References: <20180903164934.171677301@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.4-stable review patch. If anyone has any objections, please let me know. ------------------ From: Eyal Birger [ Upstream commit d6990976af7c5d8f55903bfb4289b6fb030bf754 ] When setting the skb->dst before doing the MTU check, the route PMTU caching and reporting is done on the new dst which is about to be released. Instead, PMTU handling should be done using the original dst. This is aligned with IPv4 VTI. Fixes: ccd740cbc6 ("vti6: Add pmtu handling to vti6_xmit.") Signed-off-by: Eyal Birger Signed-off-by: Steffen Klassert Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- net/ipv6/ip6_vti.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) --- a/net/ipv6/ip6_vti.c +++ b/net/ipv6/ip6_vti.c @@ -469,10 +469,6 @@ vti6_xmit(struct sk_buff *skb, struct ne goto tx_err_dst_release; } - skb_scrub_packet(skb, !net_eq(t->net, dev_net(dev))); - skb_dst_set(skb, dst); - skb->dev = skb_dst(skb)->dev; - mtu = dst_mtu(dst); if (!skb->ignore_df && skb->len > mtu) { skb_dst(skb)->ops->update_pmtu(dst, NULL, skb, mtu); @@ -487,9 +483,14 @@ vti6_xmit(struct sk_buff *skb, struct ne htonl(mtu)); } - return -EMSGSIZE; + err = -EMSGSIZE; + goto tx_err_dst_release; } + skb_scrub_packet(skb, !net_eq(t->net, dev_net(dev))); + skb_dst_set(skb, dst); + skb->dev = skb_dst(skb)->dev; + err = dst_output(t->net, skb->sk, skb); if (net_xmit_eval(err) == 0) { struct pcpu_sw_netstats *tstats = this_cpu_ptr(dev->tstats);