From patchwork Wed Sep 20 14:15:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 816263 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="x42CL6Uu"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xy1y83Zlsz9s82 for ; Thu, 21 Sep 2017 00:16:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751839AbdITOQV (ORCPT ); Wed, 20 Sep 2017 10:16:21 -0400 Received: from mail-wr0-f194.google.com ([209.85.128.194]:37281 "EHLO mail-wr0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751678AbdITOPY (ORCPT ); Wed, 20 Sep 2017 10:15:24 -0400 Received: by mail-wr0-f194.google.com with SMTP id u48so1582680wrf.4 for ; Wed, 20 Sep 2017 07:15:24 -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=TqXX1lSMAPZLrgnKN8uNmtC4bclrZdsLWhUz1t5dTPg=; b=x42CL6UuR/agV+rnczbBosG0dHfaV5X1FAMJskly8+SG9BAHvjpff/fhBFY+zZ8u/n y/hykGaA+fSxoaltOaPsTdFDibkoDceeaoUTbkdaLu+QXggAA9vWSZ90JRVM8uoRgW5V BaPAKEaAEYmBzQWsmUoB7YWJ7xgKHfo2ermfadTcsxldER1M7OE/nMtki925o1kRGS/1 d+qB5bvK1N/RpQT0xNYSkAWesBsvBRUTiABs9cGLAgcyWgFaLslOio9z3TqNmAv9FFNH 7traE/64QOzMwQ3DlzlJQkG1zfcqHjh7V2GUw3UdQypFBKRrl4/PKuDYBFtw1X5dkOWO JPUg== 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=TqXX1lSMAPZLrgnKN8uNmtC4bclrZdsLWhUz1t5dTPg=; b=TeGDabq1D4aqJzCUtlVc6TRWLx4H0+zz6+RKWlh6xFI1t9D7Zh1cpdNrt1rq6dyAkh tDFfy/kIiRAEZBH20zE7o1K+bOSfhfRZ1vxuazv02DU4vNvaNz0HlEPVeW/FVH7bjo0b tY0e68eCAvGWaHChH190uZmWdZt0JtBRHP2d3Q1UgDRV61V+oL+gsA3YPMZSzpg/4tsz yeP/LLqvxj+seEUnEUoQMM6xV5m+oR9pYQhpszGYAxFGH6excTAf065SJsPYH6NEQ+6m Tar3F5rduPI/1Pd+LwL1EG4vBfJVB9zwZcERWv6PUmWqFO2M+pm5ADVdYddqSqdZfqMd uu+g== X-Gm-Message-State: AHPjjUjBsi09BXsXC5GqHNAEcIh8hrPthf8U4YAAIjT3PIP+J8PT5kA7 bfv/Mn2l1jXj3GeGpthdc9ZM9+C8 X-Google-Smtp-Source: AOwi7QAiv+QA//uqZN5RY/V79eDlQtuV9nG+tAawxDQ1iSghsH8m+fcjcOqDaAD20OhjwH740OawIA== X-Received: by 10.223.150.19 with SMTP id b19mr5195967wra.68.1505916923675; Wed, 20 Sep 2017 07:15:23 -0700 (PDT) Received: from localhost (ip-89-177-125-82.net.upcbroadband.cz. [89.177.125.82]) by smtp.gmail.com with ESMTPSA id 29sm2007603wrz.77.2017.09.20.07.15.23 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 20 Sep 2017 07:15:23 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, nogahf@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next 07/16] mlxsw: spectrum_switchdev: Break mid deletion into two function Date: Wed, 20 Sep 2017 16:15:07 +0200 Message-Id: <20170920141516.1402-8-jiri@resnulli.us> X-Mailer: git-send-email 2.9.5 In-Reply-To: <20170920141516.1402-1-jiri@resnulli.us> References: <20170920141516.1402-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nogah Frankel Break mid deletion into two function, so it will be possible in the future to delete a mid entry for other reasons then switchdev command (like port deletion). Signed-off-by: Nogah Frankel Signed-off-by: Jiri Pirko --- .../ethernet/mellanox/mlxsw/spectrum_switchdev.c | 32 ++++++++++++++-------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 9dd05d8..7f622de 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -1468,6 +1468,25 @@ static int mlxsw_sp_port_vlans_del(struct mlxsw_sp_port *mlxsw_sp_port, return 0; } +static int +__mlxsw_sp_port_mdb_del(struct mlxsw_sp_port *mlxsw_sp_port, + struct mlxsw_sp_bridge_port *bridge_port, + struct mlxsw_sp_mid *mid) +{ + struct net_device *dev = mlxsw_sp_port->dev; + int err; + + err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid, false); + if (err) + netdev_err(dev, "Unable to remove port from SMID\n"); + + err = mlxsw_sp_port_remove_from_mid(mlxsw_sp_port, mid); + if (err) + netdev_err(dev, "Unable to remove MC SFD\n"); + + return err; +} + static int mlxsw_sp_port_mdb_del(struct mlxsw_sp_port *mlxsw_sp_port, const struct switchdev_obj_port_mdb *mdb) { @@ -1479,8 +1498,6 @@ static int mlxsw_sp_port_mdb_del(struct mlxsw_sp_port *mlxsw_sp_port, struct mlxsw_sp_bridge_port *bridge_port; struct mlxsw_sp_mid *mid; u16 fid_index; - u16 mid_idx; - int err = 0; bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp->bridge, orig_dev); if (!bridge_port) @@ -1501,16 +1518,7 @@ static int mlxsw_sp_port_mdb_del(struct mlxsw_sp_port *mlxsw_sp_port, return -EINVAL; } - err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid, false); - if (err) - netdev_err(dev, "Unable to remove port from SMID\n"); - - mid_idx = mid->mid; - err = mlxsw_sp_port_remove_from_mid(mlxsw_sp_port, mid); - if (err) - netdev_err(dev, "Unable to remove MC SFD\n"); - - return err; + return __mlxsw_sp_port_mdb_del(mlxsw_sp_port, bridge_port, mid); } static int mlxsw_sp_port_obj_del(struct net_device *dev,