From patchwork Tue Sep 22 22:55:21 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Ahern X-Patchwork-Id: 521469 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 624B414018C for ; Wed, 23 Sep 2015 08:55:46 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=cumulusnetworks.com header.i=@cumulusnetworks.com header.b=A6QSkcqj; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935088AbbIVWzk (ORCPT ); Tue, 22 Sep 2015 18:55:40 -0400 Received: from mail-pa0-f47.google.com ([209.85.220.47]:35521 "EHLO mail-pa0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933261AbbIVWzi (ORCPT ); Tue, 22 Sep 2015 18:55:38 -0400 Received: by pacfv12 with SMTP id fv12so21981672pac.2 for ; Tue, 22 Sep 2015 15:55:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cumulusnetworks.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=hk4g629HYgJW5g3RW55mL6bDI2BfQgPhE44lrO3tdQI=; b=A6QSkcqjKHTEhb/CvwcBEgm1saHljX/pZZagLU4pip3BWCfnEjAGeMsGgVwuzG4nhl aBvRSSzAMp/EhO/8iUQFiVWBhiiIaQeEKR2rEodLQeJ4hyNXWEwACBZ/Q7IOzrCQceT4 bjO4xZaCJoSR0JiW9wupqaLXao+au86tC/nL4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=hk4g629HYgJW5g3RW55mL6bDI2BfQgPhE44lrO3tdQI=; b=lrzels5nkvDX+8Aut7SSZmHsWrQYkwQskLhjuo4u629ZtaLSTHMl1QlGh0W+n3rUZE t978l+5yjVgE3qnK3bKw1/I96nSG9Z+sYsCtAxZXVPR0jKUNpqj2KiWy1WUNN8xq/lMt L24IL29FJgmkpWNOKWZUnXEWEMQiF9E+UY1ac+h6niZyMkAce+teM6TbPZX1NzjJRnPW 7axyDcp7SaPucKju+MghjiS2EaMtTt/85gMakbGKzr989F6FsV5BpyQxM4rK3STN2vDT e1pb2Ujym+TFbZQLRZk8HRgQvqc58Zu7xmyQMDZOHykBcZcdOn7vg1vchZwabi0XjXRH 6aVg== X-Gm-Message-State: ALoCoQkbDj/Ki+87tpPvaQqR8dfDWOreVHkP46PXMJAIIl4jhrGmwToSPl+iVi43xVbM7R/DodDZ X-Received: by 10.69.11.196 with SMTP id ek4mr34417872pbd.148.1442962537777; Tue, 22 Sep 2015 15:55:37 -0700 (PDT) Received: from monster-14.cumulusnetworks.com. ([216.129.126.126]) by smtp.googlemail.com with ESMTPSA id hh3sm4264611pbc.8.2015.09.22.15.55.36 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 Sep 2015 15:55:36 -0700 (PDT) From: David Ahern To: netdev@vger.kernel.org Cc: David Ahern Subject: [PATCH net-next 7/9] net: Remove martian_destination label Date: Tue, 22 Sep 2015 15:55:21 -0700 Message-Id: <1442962523-3974-8-git-send-email-dsa@cumulusnetworks.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1442962523-3974-1-git-send-email-dsa@cumulusnetworks.com> References: <1442962523-3974-1-git-send-email-dsa@cumulusnetworks.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Move call to ip_handle_martian_dest to various jump sites. The function only increments a counter and possibly does additional logging if CONFIG_IP_ROUTE_VERBOSE is enabled. Signed-off-by: David Ahern --- net/ipv4/route.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/net/ipv4/route.c b/net/ipv4/route.c index b5c3844b85d3..efc8e58c1964 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1791,15 +1791,19 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr, if (ipv4_is_lbcast(daddr) || (saddr == 0 && daddr == 0)) goto brd_input; - if (ipv4_is_zeronet(daddr)) - goto martian_destination; + if (ipv4_is_zeronet(daddr)) { + ip_handle_martian_dest(dev, in_dev, daddr, saddr); + goto out; + } /* Following code try to avoid calling IN_DEV_NET_ROUTE_LOCALNET(), * and call it once if daddr or/and saddr are loopback addresses */ if (ipv4_is_loopback(daddr)) { - if (!IN_DEV_NET_ROUTE_LOCALNET(in_dev, net)) - goto martian_destination; + if (!IN_DEV_NET_ROUTE_LOCALNET(in_dev, net)) { + ip_handle_martian_dest(dev, in_dev, daddr, saddr); + goto out; + } } else if (ipv4_is_loopback(saddr)) { if (!IN_DEV_NET_ROUTE_LOCALNET(in_dev, net)) { ip_handle_martian_source(dev, in_dev, skb, daddr, saddr); @@ -1841,8 +1845,11 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr, err = -EHOSTUNREACH; goto no_route; } - if (res.type != RTN_UNICAST) - goto martian_destination; + if (res.type != RTN_UNICAST) { + err = -EINVAL; + ip_handle_martian_dest(dev, in_dev, daddr, saddr); + goto out; + } err = ip_mkroute_input(skb, &res, &fl4, in_dev, daddr, saddr, tos); out: return err; @@ -1876,11 +1883,6 @@ out: return err; res.fi = NULL; res.table = NULL; goto local_input; - -martian_destination: - err = -EINVAL; - ip_handle_martian_dest(dev, in_dev, daddr, saddr); - goto out; } int ip_route_input_noref(struct sk_buff *skb, __be32 daddr, __be32 saddr,