From patchwork Sun Jan 20 06:50:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 1028095 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=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="Pzqv5cJn"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43j51P0DWGz9sCr for ; Sun, 20 Jan 2019 17:51:05 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729341AbfATGu4 (ORCPT ); Sun, 20 Jan 2019 01:50:56 -0500 Received: from mail-eopbgr10059.outbound.protection.outlook.com ([40.107.1.59]:61184 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727086AbfATGuz (ORCPT ); Sun, 20 Jan 2019 01:50:55 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LYy9PbhWozVWiVxe8xYrcCyW2cn7pNIBroQwydbO3L8=; b=Pzqv5cJnKtmqUV+Ofene3sUi5UOF8U01kQdDn5NMD5VJLsWmvlnT3wZTkzg7J+4yAq5htvNzQzg7fBnCDOipaLUlJx0yuNr7XFnfo98CcBX19YsI/GCmOitxzFlsm3KG29vofge/PPIPaN3xsd1L1sCx3mSXCDYvl15AV6bCsQQ= Received: from AM6PR05MB6056.eurprd05.prod.outlook.com (20.179.2.148) by AM6PR05MB6343.eurprd05.prod.outlook.com (20.179.5.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.24; Sun, 20 Jan 2019 06:50:41 +0000 Received: from AM6PR05MB6056.eurprd05.prod.outlook.com ([fe80::3411:612a:f48b:a5e2]) by AM6PR05MB6056.eurprd05.prod.outlook.com ([fe80::3411:612a:f48b:a5e2%5]) with mapi id 15.20.1537.031; Sun, 20 Jan 2019 06:50:41 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Nir Dotan , mlxsw , Ido Schimmel Subject: [PATCH net-next 04/18] mlxsw: spectrum: Set RIF ops per ASIC type Thread-Topic: [PATCH net-next 04/18] mlxsw: spectrum: Set RIF ops per ASIC type Thread-Index: AQHUsIx1DsL4k99liECVRPrP6Ih4LQ== Date: Sun, 20 Jan 2019 06:50:41 +0000 Message-ID: <20190120065007.21352-5-idosch@mellanox.com> References: <20190120065007.21352-1-idosch@mellanox.com> In-Reply-To: <20190120065007.21352-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P192CA0103.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:8d::44) To AM6PR05MB6056.eurprd05.prod.outlook.com (2603:10a6:20b:ab::20) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM6PR05MB6343; 6:IVQBtIsCms1TSq71Lrk7XmeSBecFwSXuE+cggTDe7zo7/7iHGClsrF9YE0neHHtO0/DXhzoHb08G+WDe2yV7ZQhivY0Hgxj1xNK0sLCPAbPq/gQKSv21H6yEuB1l1Q1pbEA/vtYs3GrXbfgD9Tt4Bj5EWHR2vkxocz/asxnGX1u/9+9tTxdAzBfbjWsMEQJaahz8m2AERsC6V9vF5k90uEw/YfW5SiZVxBi3GqAn9i6DTfk1RDatDKdkbJPQD7zRuCwhrc+Lx5A2jDhagG7+LP1LOBafmesBBNuN02+XM2EPSZ1yLjSQSEXuWJ7Rjxk+xhgMu+H/Ij4InzY/qgKMGmu/idxg87AQ0UCcUeneH9AY2omx13LdPVuChkSvb6ZyFXCmr6XIesRVT5k02Yb1S2VzlnlZtTLH+pra2QBvKvQobBtEqzvTbVNFk8b/Tm5rIwtE+hbUMeTEznBrNw2H8w==; 5:AgkkOSk1gNTx9FJ4KVmVrB/xiP1i5JPgO/QgmiGWacero905ItUzWuXnkLV7cnH/2fusFcGrV897iK7aXYiv5ZsYwa57PD5IoYIWldBq4Rq16Y1+RB8oVM9dm19yQ6y2RXu4jtYMTZhCptK9qhdfwW6XC3zgx0dUWaY82RIUIBqVN0ORXWkhiDO6Z1GprES6OkzZza6BABZjdKPx894iwQ==; 7:au3n7zhfb5i0OXYper8Y2rDFT3yaUUHkss8j1n0yCqGrVua9xNbzF3IZNQcO2M3Yj4Z3tlsFpa8jQYdDo8munEs1yvX5vH0ZpZD9HV3CUxV6vLdUmOwvX3uv8h10aKZOJxkIlQ/WTdZ70D2X+GswaQ== x-ms-office365-filtering-correlation-id: 23a8f961-3132-4730-8d93-08d67ea397f0 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:AM6PR05MB6343; x-ms-traffictypediagnostic: AM6PR05MB6343: x-microsoft-antispam-prvs: x-forefront-prvs: 0923977CCA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(366004)(346002)(39850400004)(396003)(136003)(189003)(199004)(52116002)(86362001)(6916009)(446003)(3846002)(6116002)(305945005)(5640700003)(186003)(4326008)(486006)(14444005)(8936002)(68736007)(386003)(6506007)(7736002)(54906003)(256004)(76176011)(71190400001)(71200400001)(66574012)(478600001)(36756003)(11346002)(2906002)(105586002)(6486002)(106356001)(6436002)(99286004)(2616005)(6512007)(476003)(97736004)(102836004)(1076003)(8676002)(316002)(81156014)(81166006)(2501003)(2351001)(14454004)(50226002)(25786009)(6346003)(53936002)(1730700003)(107886003)(66066001)(26005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB6343; H:AM6PR05MB6056.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: cB0VzkWUJst3b3z6ki5KQJfjgFLuUMSo93iIgflJ3qYvUTC1skDB6fT3tszBUpRVBtMSCVrWnOYrp2ZUDMc2ackKhi2gLGT8God8LPcc3keEpJv8ArRwNQpg0m1g59v526wfnzqDwFdlfAOYTVDP1sa9iFvazg6I/Qiw2bQThRaX/gNKww7V6HAzIQ6IjNP4qdfZv7P/NNYoxiKbxtnMYg3f3fwLznsuj8wJde9yeQQ6y3QQflRk2IWV36OPyzVLF48mGA/n606tYsJOGvBrtDWubcVYaX6KHXzx5BBrrvDOKKHR7+k6LNmw0isCOn8QLFg1YDpmYiXKqOPctL1XTXesogJbhm6v8k2/gX5913Gv0GNqIbXW7bmgFAyhgIurtkqqUUTN+mjX/wEbrPhDkJOuYPC0HpMDRH8voCgTSJc= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23a8f961-3132-4730-8d93-08d67ea397f0 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Jan 2019 06:50:40.8084 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB6343 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nir Dotan Set RIF ops array as member of mlxsw_sp in order to control which RIF operations callbacks are called per ASIC type. This is needed to control per ASIC handling of loopback RIF configurations. Signed-off-by: Nir Dotan Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel --- drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 ++ drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 6 ++++++ drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c | 4 +--- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index 32519c93df17..a88169738b4a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -4094,6 +4094,7 @@ static int mlxsw_sp1_init(struct mlxsw_core *mlxsw_core, mlxsw_sp->acl_tcam_ops = &mlxsw_sp1_acl_tcam_ops; mlxsw_sp->nve_ops_arr = mlxsw_sp1_nve_ops_arr; mlxsw_sp->mac_mask = mlxsw_sp1_mac_mask; + mlxsw_sp->rif_ops_arr = mlxsw_sp1_rif_ops_arr; return mlxsw_sp_init(mlxsw_core, mlxsw_bus_info); } @@ -4110,6 +4111,7 @@ static int mlxsw_sp2_init(struct mlxsw_core *mlxsw_core, mlxsw_sp->acl_tcam_ops = &mlxsw_sp2_acl_tcam_ops; mlxsw_sp->nve_ops_arr = mlxsw_sp2_nve_ops_arr; mlxsw_sp->mac_mask = mlxsw_sp2_mac_mask; + mlxsw_sp->rif_ops_arr = mlxsw_sp2_rif_ops_arr; return mlxsw_sp_init(mlxsw_core, mlxsw_bus_info); } diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h index a1c32a81b011..1fa5c81b209f 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h @@ -75,6 +75,11 @@ enum mlxsw_sp_rif_type { MLXSW_SP_RIF_TYPE_MAX, }; +struct mlxsw_sp_rif_ops; + +extern const struct mlxsw_sp_rif_ops *mlxsw_sp1_rif_ops_arr[]; +extern const struct mlxsw_sp_rif_ops *mlxsw_sp2_rif_ops_arr[]; + enum mlxsw_sp_fid_type { MLXSW_SP_FID_TYPE_8021Q, MLXSW_SP_FID_TYPE_8021D, @@ -161,6 +166,7 @@ struct mlxsw_sp { const struct mlxsw_sp_mr_tcam_ops *mr_tcam_ops; const struct mlxsw_sp_acl_tcam_ops *acl_tcam_ops; const struct mlxsw_sp_nve_ops **nve_ops_arr; + const struct mlxsw_sp_rif_ops **rif_ops_arr; }; static inline struct mlxsw_sp_upper * diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c index 094037539300..139767769ace 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c @@ -6284,7 +6284,7 @@ mlxsw_sp_rif_create(struct mlxsw_sp *mlxsw_sp, int i, err; type = mlxsw_sp_dev_rif_type(mlxsw_sp, params->dev); - ops = mlxsw_sp->router->rif_ops_arr[type]; + ops = mlxsw_sp->rif_ops_arr[type]; vr = mlxsw_sp_vr_get(mlxsw_sp, tb_id ? : RT_TABLE_MAIN, extack); if (IS_ERR(vr)) @@ -7512,8 +7512,6 @@ static int mlxsw_sp_rifs_init(struct mlxsw_sp *mlxsw_sp) if (!mlxsw_sp->router->rifs) return -ENOMEM; - mlxsw_sp->router->rif_ops_arr = mlxsw_sp1_rif_ops_arr; - return 0; }