From patchwork Thu Mar 16 08:08:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 739680 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 3vkLjK4r4qz9s06 for ; Thu, 16 Mar 2017 19:09:25 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="gjN+9N1l"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751873AbdCPIJX (ORCPT ); Thu, 16 Mar 2017 04:09:23 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:34318 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751282AbdCPIIq (ORCPT ); Thu, 16 Mar 2017 04:08:46 -0400 Received: by mail-wr0-f195.google.com with SMTP id u48so4828092wrc.1 for ; Thu, 16 Mar 2017 01:08:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=D+vTKPBJzP86JS/wF5upJ2B0NqPE0+sah4g9xqEleYc=; b=gjN+9N1lcDjBCvrLFSOPm5Powsuykt7gQ6t8TqAKPLjkfxFc+EMm0K9/uZDDGbnHZS /AE+iJQBWK/WNTIvtSVmOaSAhDo56jnmf54MvL51UBrkfCjNmeqEQp81udXnQzfRN5lx cJKmTtf7w2qyUDti4qhgU6s77wxOfvb4fgZRv0BOewwmY77ClIkUyWOYVjvTnoYnavHg CZ46A7sPSuDUaWyZ3PZM9TJSkEvkSOQWvwe5It0NnxTIOjZ1qn2kfixm1qIDHf9tVYqL T0SMxIifanVr9BLzqc2iiztKY+Jrd7maOUr5A81sKzcErrezBZc+QNMkuqPaCrxLm12s vcGw== 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=D+vTKPBJzP86JS/wF5upJ2B0NqPE0+sah4g9xqEleYc=; b=jk3A09ipENl3Md/SIsgxxJt7Ur2E4c2A5bJcC2d0vjZw+22bjaYlerhANx7MQi7o7n Du+v1SZ4c004nmmYcuekTzgpuqBbjYeseqy8PGcgSUwO/uu7uT7zrHh5RG0uueohS0vQ +DZlUSSEXvHs/liwN/0EH0tgv4i8gSkJQ+9cmAwjezhwKNJ53KpitvHTw4gNS+T6F1R1 Gi9iyQuxeaRdbdmjSePqobj9PjiwudFLpC0k/q8qJkFDkUS/iEqKDkVsqSpPUGgPFNwI W8eUrsGvD7SdJ2naY6qluLHzb5zQLIwZfxyiA2OXE+RR9H4vT1rv+/UYsVBfZQHF3wfq 32pw== X-Gm-Message-State: AFeK/H34Bu065MIzU81lpUhbcJQv+DR3FZKn6o8zPPelNwKtf8C7reBVet/SSfCT0wMLYA== X-Received: by 10.223.155.129 with SMTP id d1mr6706543wrc.67.1489651706498; Thu, 16 Mar 2017 01:08:26 -0700 (PDT) Received: from localhost (ip-78-45-162-92.net.upcbroadband.cz. [78.45.162.92]) by smtp.gmail.com with ESMTPSA id m83sm3293816wmc.33.2017.03.16.01.08.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 16 Mar 2017 01:08:26 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, idosch@mellanox.com, mlxsw@mellanox.com, dsa@cumulusnetworks.com, shm@cumulusnetworks.com, kuznet@ms2.inr.ac.ru, jmorris@namei.org, yoshfuji@linux-ipv6.org, kaber@trash.net, lorenzo@google.com, mateusz.bajorski@nokia.com Subject: [patch net-next v3 4/9] net: vrf: Set slave's private flag before linking Date: Thu, 16 Mar 2017 09:08:15 +0100 Message-Id: <1489651700-3586-5-git-send-email-jiri@resnulli.us> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1489651700-3586-1-git-send-email-jiri@resnulli.us> References: <1489651700-3586-1-git-send-email-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Ido Schimmel Allow listeners of the subsequent CHANGEUPPER notification to retrieve the VRF's table ID by calling l3mdev_fib_table() with the slave netdev. Without this change, the netdev won't be considered an L3 slave and the function would return 0. This is consistent with other master device such as bridge and bond that set the slave's private flag before linking. It also makes do_vrf_{add,del}_slave() symmetric. Signed-off-by: Ido Schimmel Acked-by: David Ahern Signed-off-by: Jiri Pirko --- drivers/net/vrf.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/vrf.c b/drivers/net/vrf.c index fea687f..7f28021 100644 --- a/drivers/net/vrf.c +++ b/drivers/net/vrf.c @@ -747,14 +747,18 @@ static int do_vrf_add_slave(struct net_device *dev, struct net_device *port_dev) { int ret; + port_dev->priv_flags |= IFF_L3MDEV_SLAVE; ret = netdev_master_upper_dev_link(port_dev, dev, NULL, NULL); if (ret < 0) - return ret; + goto err; - port_dev->priv_flags |= IFF_L3MDEV_SLAVE; cycle_netdev(port_dev); return 0; + +err: + port_dev->priv_flags &= ~IFF_L3MDEV_SLAVE; + return ret; } static int vrf_add_slave(struct net_device *dev, struct net_device *port_dev)