From patchwork Sat Jun 17 17:42:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Wang X-Patchwork-Id: 777342 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3wql3D0W3Hz9s7M for ; Sun, 18 Jun 2017 03:43:52 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ZaCis3cu"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752485AbdFQRnc (ORCPT ); Sat, 17 Jun 2017 13:43:32 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:35853 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752276AbdFQRnb (ORCPT ); Sat, 17 Jun 2017 13:43:31 -0400 Received: by mail-pg0-f67.google.com with SMTP id e187so1834993pgc.3 for ; Sat, 17 Jun 2017 10:43:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=iN4tvyn3S1UJPVb7DrgTR/avsx8J1b0q+Wwi2ASdfvU=; b=ZaCis3cuMCpRSplRxf6D3RBaFj/n0PFd1gcPGS/c9iTtzCOYPD02Sg7p+LkfskrXIq /fEAtV+L5EoCXKtQXisvwAVryYFLr3OfvuSj8RhHmGqLtGBG8ZKHUYOp95lWwKxwcTKA V/P6L8jMCp8MaTnlwPfSQ15YydrKq/kiPZoOwN0iyvvecaeqzlKU9/VVA92PHffBUPpL XCXBK57BZICa8J2C6a2UqsGAGZo6XjdVOorVa52ShMNocggn1zQB6ePS7cHtSRTNp2Qh TKj6Z2fb1HI71v6/Pa48fj/cOWqsEcRY9pLPeenfR/JCHjgSUC2Gg9ed6dKH+nq1kAaN U0Tw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=iN4tvyn3S1UJPVb7DrgTR/avsx8J1b0q+Wwi2ASdfvU=; b=hzKMyuqvBQ6tTQSAWN7scqZRgQ1gCEPErWl7UfX+wDK9GD9P/VE841bByQ3APpNfkk 4vi6FhLf1UbZL22MFVYb9YDO5my4uJCaF3x0dOTs8N7S39Bl48UeL8TBfKqiWH2NWt0Y yKvD5M8q9aFQDe6q30l//zltxr4grzyQsvO334Bp5vhiVvjL35F2y/XcFbdAmiFvJsnD DkK4857zAuGvKOfT+6yb8CFU9AhrRtVQF5pP8hIjeGBXT5bgBqKXQsFndubLeiDmFmZp u1agB5jUAWoJQKKduckP81AdoPQkD35kGKyiBqYxVqu3qd3MMsUBacw4CMldjCMQ23Jp pmwg== X-Gm-Message-State: AKS2vOzARVIYYrIpFbNOtdtWLo5MIUQck+kwNl70lludRzktYTnTCxE5 O7F0SJkuUkytfpuf2xM= X-Received: by 10.84.209.234 with SMTP id y97mr19792433plh.200.1497721411014; Sat, 17 Jun 2017 10:43:31 -0700 (PDT) Received: from weiwan0.mtv.corp.google.com ([100.123.230.66]) by smtp.gmail.com with ESMTPSA id h7sm11352777pfc.97.2017.06.17.10.43.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 17 Jun 2017 10:43:30 -0700 (PDT) From: Wei Wang To: David Miller , netdev@vger.kernel.org Cc: Eric Dumazet , Martin KaFai Lau , Wei Wang Subject: [PATCH v2 net-next 01/21] ipv6: remove unnecessary dst_hold() in ip6_fragment() Date: Sat, 17 Jun 2017 10:42:24 -0700 Message-Id: <20170617174244.132862-2-tracywwnj@gmail.com> X-Mailer: git-send-email 2.13.1.518.g3df882009-goog In-Reply-To: <20170617174244.132862-1-tracywwnj@gmail.com> References: <20170617174244.132862-1-tracywwnj@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Wei Wang In ipv6 tx path, rcu_read_lock() is taken so that dst won't get freed during the execution of ip6_fragment(). Hence, no need to hold dst in it. Signed-off-by: Wei Wang Acked-by: Martin KaFai Lau --- net/ipv6/ip6_output.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c index 8b8efb0e55bf..5baa6fab4b97 100644 --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -698,8 +698,6 @@ int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, ipv6_hdr(skb)->payload_len = htons(first_len - sizeof(struct ipv6hdr)); - dst_hold(&rt->dst); - for (;;) { /* Prepare header of the next frame, * before previous one went down. */ @@ -742,7 +740,6 @@ int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, if (err == 0) { IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), IPSTATS_MIB_FRAGOKS); - ip6_rt_put(rt); return 0; } @@ -750,7 +747,6 @@ int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb, IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), IPSTATS_MIB_FRAGFAILS); - ip6_rt_put(rt); return err; slow_path_clean: