From patchwork Thu Aug 23 03:31:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hangbin Liu X-Patchwork-Id: 961153 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ONNDSJy4"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41wqhr54DXz9ryt for ; Thu, 23 Aug 2018 13:31:56 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728264AbeHWG71 (ORCPT ); Thu, 23 Aug 2018 02:59:27 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:35119 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726150AbeHWG71 (ORCPT ); Thu, 23 Aug 2018 02:59:27 -0400 Received: by mail-pf1-f195.google.com with SMTP id p12-v6so1975750pfh.2 for ; Wed, 22 Aug 2018 20:31:54 -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; bh=ZdmWv+VKvR+s/lhTHMp0bpmvYsxP+J4GzOABkAxNYxU=; b=ONNDSJy4CMLHXYmhmgevxtPpQbyP3ln6DvPj1XQbRAQg5ZsQVKTkNvafbwsBjKEk3u JNA8AgaumfIH76a9Ni/48XRMKhDJ6wcZjW1atXKrU6qD7Ul/GGImaF/94jbrh7zKgTj8 lAKhfvn79Muo6EXJeeRevef7oJXLPkDa7YF3mNPIFylShkNqa4iW+/2c0pd3mfdnL3qj d3Jrb8TPp3ls2hGEYmzq89X8dWkIhoNzwtz8MUN0TVE3BJ/C4lFJFwPz3drOnb/ZD4ML yO9Cw+zfUgrgsoVuJzSuEgFcqC9mjQULkhjvJaO5yRDKOwu6sNlf2IZzI7s+pBEcPA11 FqcQ== 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; bh=ZdmWv+VKvR+s/lhTHMp0bpmvYsxP+J4GzOABkAxNYxU=; b=ZlsMzAgz9sYvsa/uDLtaEjQQJwsstsuR+yg6ftH6/VIPTp0+f9jDF4T5n1y4+QsaoB +dkcRNAwgTx6cawRR61Kbh1l6vZlX4e4GGxRJs/BJ48/nkrhP8FrVwGz3oDZQwGRpcqf V7TJCU7XouPgucUkZgEQ2W0sZ07OBU6WQWmKTVM2K7gMbWPVvaOdSRmQLagtQUnXTWuR hssw2Ch1B0snphDc16gf8YdMF6gNaF1Kqyc8KCAim0aQVncr0Wam2xoxtz32uNEKbjsu d/jmuIiGDqhRbzQk15gi4LoY6ngh8vikdPdl9ShNrmCCc83iMN4itbdtriibvKQR9+Gk NmMw== X-Gm-Message-State: AOUpUlEtyj3naS90MMrGzpdXn2WurvwmbVvHeMQg2yG8TyheMRSUzZQb wJ3lWYQtMgGJvj7diYZ/m5VJnC13 X-Google-Smtp-Source: AA+uWPxxiRSbOmBQe7RFKYhXnqZ8p2oBJrIOmGamKrDkofe/TswONo6QOpj0MKSIDG1qNC8vU9ISZg== X-Received: by 2002:a62:6003:: with SMTP id u3-v6mr38087263pfb.114.1534995114049; Wed, 22 Aug 2018 20:31:54 -0700 (PDT) Received: from leo.usersys.redhat.com ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id n24-v6sm4253774pfi.161.2018.08.22.20.31.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 22 Aug 2018 20:31:53 -0700 (PDT) From: Hangbin Liu To: netdev@vger.kernel.org Cc: David Ahern , "David S. Miller" , Hangbin Liu Subject: [PATCH] net/ipv6: init ip6 anycast rt->dst.input as ip6_input Date: Thu, 23 Aug 2018 11:31:37 +0800 Message-Id: <1534995097-6189-1-git-send-email-liuhangbin@gmail.com> X-Mailer: git-send-email 2.5.5 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Commit 6edb3c96a5f02 ("net/ipv6: Defer initialization of dst to data path") forgot to handle anycast route and init anycast rt->dst.input to ip6_forward. Fix it by setting anycast rt->dst.input back to ip6_input. Fixes: 6edb3c96a5f02 ("net/ipv6: Defer initialization of dst to data path") Signed-off-by: Hangbin Liu Reviewed-by: David Ahern --- net/ipv6/route.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 7208c16..c4ea13e 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -956,7 +956,7 @@ static void ip6_rt_init_dst(struct rt6_info *rt, struct fib6_info *ort) rt->dst.error = 0; rt->dst.output = ip6_output; - if (ort->fib6_type == RTN_LOCAL) { + if (ort->fib6_type == RTN_LOCAL || ort->fib6_type == RTN_ANYCAST) { rt->dst.input = ip6_input; } else if (ipv6_addr_type(&ort->fib6_dst.addr) & IPV6_ADDR_MULTICAST) { rt->dst.input = ip6_mc_input;