From patchwork Thu Jan 7 09:25:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 564213 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 3E11D1402C9 for ; Thu, 7 Jan 2016 20:25:13 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b=kUkb+YR/; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752397AbcAGJZJ (ORCPT ); Thu, 7 Jan 2016 04:25:09 -0500 Received: from mail-wm0-f51.google.com ([74.125.82.51]:35235 "EHLO mail-wm0-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751996AbcAGJZF (ORCPT ); Thu, 7 Jan 2016 04:25:05 -0500 Received: by mail-wm0-f51.google.com with SMTP id f206so89262616wmf.0 for ; Thu, 07 Jan 2016 01:25:03 -0800 (PST) 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; bh=ZIRECNdGEAxKeI2Kd0RqjrrOnlCQ0EWxt0f8TqaDlqQ=; b=kUkb+YR/vqwuBvFZzevQKFM5ifWjxfqjoFy/AOUKHzSKyz89eFRuynvt9pD37285LA Q7asVUt16WOXt9EHAFzvsXq+ixZta2a+hPhbq04rPFl2Sd8Xk1i3MxrkEy60U5fiHoT6 /o6rWp4Um2dHtP+xCoGTSbYbfHIkSiMjpwTJH+JCF5CvSgcdDjWfY7cqtnT4WxC3Z+Zj r+sVCB0g2VMj/hJ1pApwGeYQbI6SppYajDSQ0fj3D0KqRLOvyLx4fvYebjhryWRNZl5w DZ9Z/js/kESwWvaRKpzTyiFzEjb0Uv4RdBmAAj0Nqbj6VlWAPRx0dxQHdBLywiGZZBU3 2usg== 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; bh=ZIRECNdGEAxKeI2Kd0RqjrrOnlCQ0EWxt0f8TqaDlqQ=; b=BLe5KZqIk5YE2qFJIq1gLT5g8KZc5HMGY2Z6ezdCn4gvEuWdcUMHqsy5L8vbu4ZlMU NWz4zq7bW5eiuT1Y2h/aw8FTYVNnaeovF9f9NVSob3BPmRDsfGbPWrN7Kg4/sVKkhP4C A+IHZWCIX5KCLrM/FWFGKO2stZE0hRy1NjMjQ7HBf/oDbs27EpBmiM2G7TD+y5dvqRAD qPccWSFYYHReicN+8H8NG2eVAKBZjtFPpK1qk1LjI0myS4q0df+7htf/Wv3CWbufgSCw pY+fpJzJPQJaI1UG7QSX7qysU1cDvBXJuCYekehzp7a5N2ItecwNbTSobaevZh3XmUKX g2ZQ== X-Gm-Message-State: ALoCoQluQs50IAaw1dkdVxAVN/T2EyvWgcuy55HFOlry3TsdkO2OJei3W+pj2BLVNxUgZr6bol+j2ozD0KDaFHdq0K5gbWp2IQ== X-Received: by 10.28.48.194 with SMTP id w185mr16186324wmw.73.1452158702953; Thu, 07 Jan 2016 01:25:02 -0800 (PST) Received: from localhost (ip-94-113-120-24.net.upcbroadband.cz. [94.113.120.24]) by smtp.gmail.com with ESMTPSA id m128sm12634143wma.24.2016.01.07.01.25.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 07 Jan 2016 01:25:02 -0800 (PST) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, idosch@mellanox.com, eladr@mellanox.com, yotamg@mellanox.com, ogerlitz@mellanox.com Subject: [patch net-next 1/2] mlxsw: spectrum: pass local_port to mlxsw_sp_port_fdb_uc_op Date: Thu, 7 Jan 2016 10:25:00 +0100 Message-Id: <1452158701-15747-1-git-send-email-jiri@resnulli.us> X-Mailer: git-send-email 1.9.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Do not pass struct mlxsw_sp_port to mlxsw_sp_port_fdb_uc_op and rather just pass local_port. This is needed in case this is called from SFN process function and mlxsw_sp_port is not existent for particular local_port. Signed-off-by: Jiri Pirko Reviewed-by: Ido Schimmel --- drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index 6215954..d22076b 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -568,11 +568,10 @@ static enum mlxsw_reg_sfd_op mlxsw_sp_sfd_op(bool adding) MLXSW_REG_SFD_OP_WRITE_REMOVE; } -static int mlxsw_sp_port_fdb_uc_op(struct mlxsw_sp_port *mlxsw_sp_port, +static int mlxsw_sp_port_fdb_uc_op(struct mlxsw_sp *mlxsw_sp, u8 local_port, const char *mac, u16 fid, bool adding, bool dynamic) { - struct mlxsw_sp *mlxsw_sp = mlxsw_sp_port->mlxsw_sp; char *sfd_pl; int err; @@ -583,7 +582,7 @@ static int mlxsw_sp_port_fdb_uc_op(struct mlxsw_sp_port *mlxsw_sp_port, mlxsw_reg_sfd_pack(sfd_pl, mlxsw_sp_sfd_op(adding), 0); mlxsw_reg_sfd_uc_pack(sfd_pl, 0, mlxsw_sp_sfd_rec_policy(dynamic), mac, fid, MLXSW_REG_SFD_REC_ACTION_NOP, - mlxsw_sp_port->local_port); + local_port); err = mlxsw_reg_write(mlxsw_sp->core, MLXSW_REG(sfd), sfd_pl); kfree(sfd_pl); @@ -633,7 +632,8 @@ mlxsw_sp_port_fdb_static_add(struct mlxsw_sp_port *mlxsw_sp_port, fid = mlxsw_sp_port->pvid; if (!mlxsw_sp_port->lagged) - return mlxsw_sp_port_fdb_uc_op(mlxsw_sp_port, + return mlxsw_sp_port_fdb_uc_op(mlxsw_sp_port->mlxsw_sp, + mlxsw_sp_port->local_port, fdb->addr, fid, true, false); else return mlxsw_sp_port_fdb_uc_lag_op(mlxsw_sp_port->mlxsw_sp, @@ -772,7 +772,8 @@ mlxsw_sp_port_fdb_static_del(struct mlxsw_sp_port *mlxsw_sp_port, } if (!mlxsw_sp_port->lagged) - return mlxsw_sp_port_fdb_uc_op(mlxsw_sp_port, + return mlxsw_sp_port_fdb_uc_op(mlxsw_sp_port->mlxsw_sp, + mlxsw_sp_port->local_port, fdb->addr, fid, false, false); else @@ -1028,7 +1029,7 @@ static void mlxsw_sp_fdb_notify_mac_process(struct mlxsw_sp *mlxsw_sp, vid = fid; } - err = mlxsw_sp_port_fdb_uc_op(mlxsw_sp_port, mac, fid, + err = mlxsw_sp_port_fdb_uc_op(mlxsw_sp, local_port, mac, fid, adding && mlxsw_sp_port->learning, true); if (err) { if (net_ratelimit())