From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D7AD7C282C2 for ; Thu, 7 Feb 2019 11:23:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9952D21902 for ; Thu, 7 Feb 2019 11:23:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="eCuanQkm" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727140AbfBGLXa (ORCPT ); Thu, 7 Feb 2019 06:23:30 -0500 Received: from mail-eopbgr30058.outbound.protection.outlook.com ([40.107.3.58]:15520 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726748AbfBGLXa (ORCPT ); Thu, 7 Feb 2019 06:23:30 -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=Yi6LaamWfr5FclaDRgD7bmDYVpnE86T/xqAQSbOacnI=; b=eCuanQkmt9hROrXvF3OtBVGx1q3Nd1zK7pnIhem3aC+Sz7LrmmMug+R2SKSv6yV4N9OJ9Ov9tr9lObN53WJdlwKlQ6XBwMmWZsKlEkMSf8qmSZeJzLmYta4rmm87xPdgNdJ97PtpWnr3aiOrDXC2xjON55Jc1G2M7amTx2ej7D0= Received: from AM6PR05MB5240.eurprd05.prod.outlook.com (20.177.196.214) by AM6PR05MB5624.eurprd05.prod.outlook.com (20.178.86.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1601.21; Thu, 7 Feb 2019 11:22:52 +0000 Received: from AM6PR05MB5240.eurprd05.prod.outlook.com ([fe80::3542:889c:3a85:3866]) by AM6PR05MB5240.eurprd05.prod.outlook.com ([fe80::3542:889c:3a85:3866%5]) with mapi id 15.20.1601.016; Thu, 7 Feb 2019 11:22:52 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , mlxsw , Ido Schimmel Subject: [PATCH net-next 09/14] mlxsw: spectrum_acl: Pass hints priv all the way to ERP code Thread-Topic: [PATCH net-next 09/14] mlxsw: spectrum_acl: Pass hints priv all the way to ERP code Thread-Index: AQHUvtd35wEOaTBvMECXoPxxwvC23g== Date: Thu, 7 Feb 2019 11:22:52 +0000 Message-ID: <20190207112211.10375-10-idosch@mellanox.com> References: <20190207112211.10375-1-idosch@mellanox.com> In-Reply-To: <20190207112211.10375-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P194CA0032.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::45) To AM6PR05MB5240.eurprd05.prod.outlook.com (2603:10a6:20b:64::22) authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; 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;AM6PR05MB5624;6:ZNBgSDzJb0AfwzX/5F87AhZBbWHqaosVhmabSo1oe1KC54qCzEbvW0gbMHHkR6e9gxv+TrHUPw/0SZsPt/PLS8jRJRHxU0A6UpJZlaEtoeXXFDXfpFBYuid+cepmdf+Jc/tX9ovz0gexzHRhYinvxhjIbUfjakPJHfOkhzyeVBFlvJwGWhU3Bo8BMr8FmL3LPoTNMadU2jEFcnD+7Ci4WY3Td4KgMU0HL9+/YRTMR56z7/+qos1vgRi8lo8L9OjjjZ5kgJ0C4Hn99Z8ldQjeQhaxLSRPmzBwXVsadeofEOoxfkG8T9dcZQmIyYmhvmPtm56e0ZBA8YRmufIM/cB8pOmCkBQqtR14AgDBy0Ao/HKui/k5JqDMROcc2lr3LIxgyyVqbdQvw0TggubouBthk46Wk7hIB4ohnRyT2TDyGQJVMMocXhSqP8xKmVko7Hh5NXjR5Q6y+27UxNFzLTZPaQ==;5:+ERjtyHrcDFP1l5V8VtpGrmBypfRtz60FcKJSm960bDRbzOSK2wh4j4u8N+zHxlg7Xa2uddroLF3nde6jdfbbQK543xSe5K8vA2N71RgZ8k+gWP7lPUGacE+rXe6+Gp+BV+YOP99rA6yPsxFGaij8IA5GQEWmFnrLqi7RBszGf7jRCDzfK5n9cxeuma9H4uLrksEjQealUovcxsblOJLmw==;7:vgMmJd+YeBB7w0G0ENPT+/u3+Tw7OBV7XA1V602qtJbD0+7jd3+3KmrDn836DNu/XLbPPTep6Y8bid5pSOoIh3AQ+kk54bJzAJgMjW5kzGWR73cdOVhNgT8tuIyTvqY2VHLY5FQ/UNaw4VS1gQjyvA== x-ms-office365-filtering-correlation-id: ac1c5e55-1feb-4bd6-fd5b-08d68cee9956 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605077)(4618075)(2017052603328)(7153060)(7193020);SRVR:AM6PR05MB5624; x-ms-traffictypediagnostic: AM6PR05MB5624: x-microsoft-antispam-prvs: x-forefront-prvs: 0941B96580 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(346002)(396003)(136003)(366004)(39860400002)(189003)(199004)(81166006)(81156014)(8676002)(68736007)(8936002)(66066001)(6916009)(105586002)(3846002)(6116002)(71200400001)(71190400001)(6506007)(386003)(1076003)(102836004)(2351001)(478600001)(36756003)(52116002)(2501003)(14454004)(76176011)(106356001)(26005)(1730700003)(50226002)(305945005)(186003)(54906003)(4326008)(2616005)(6512007)(6486002)(7736002)(446003)(53936002)(107886003)(6436002)(256004)(99286004)(11346002)(5640700003)(316002)(86362001)(476003)(2906002)(486006)(97736004)(25786009)(43043002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB5624;H:AM6PR05MB5240.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) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: igvb0gJyP0oSHdNjfpSDTdcu6ohvHAP+UHFOLIYKr9Fclhnepsst2gWrpcfIsksqXQZsJZ0L2+Eede/EfEroMKd9c4nifbZDNzA+Me6+OZkpFkdT4cdTQ3KqygdVPwVXV0nVtY4RTu4c8pVXahCa2j6ieoPOhrYpbJOgMilZHjXZ5aXsgiX2rOFBD3uxBnOzn37A07nT1OtxyBecFyAlIOW/m5cPugJy/0AJDZ6UD9S3Dwby8n/X8DX9HGXC44tTzJe2JmxXRuHnfPcP+g/IxE6+FPms5cUfb2ZQoEOtYhuoKHEMZ4E/SLJW8c+osT56ePIT48Dbhnhyt+v4dVAc+SOg3D0oda7ii15SZRlHPW5j1yykkE4ZjzvnxUF9uJIZR3HD0LrUKdGMsNjHKrS3nvqJ2CVGLpJKt9Boh04zb4U= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ac1c5e55-1feb-4bd6-fd5b-08d68cee9956 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Feb 2019 11:22:51.7440 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB5624 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko The hints priv comes from ERP code and it is possible to obtain it from TCAM code. Add arg to appropriate functions so the hints priv could be passed back down to ERP code. Pass NULL now as the follow-up patches would pass an actual hints priv pointer. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel --- drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 3 ++- .../net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c | 3 ++- .../net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c | 6 ++++-- .../net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c | 3 ++- .../net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c | 11 +++++++---- .../net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 3 ++- .../net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h | 4 +++- 7 files changed, 22 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h b/drivers/net/e= thernet/mellanox/mlxsw/spectrum.h index 6432a1ce51f3..3d17b4a368f4 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.h @@ -704,7 +704,8 @@ struct mlxsw_sp_acl_tcam_ops { size_t region_priv_size; int (*region_init)(struct mlxsw_sp *mlxsw_sp, void *region_priv, void *tcam_priv, - struct mlxsw_sp_acl_tcam_region *region); + struct mlxsw_sp_acl_tcam_region *region, + void *hints_priv); void (*region_fini)(struct mlxsw_sp *mlxsw_sp, void *region_priv); int (*region_associate)(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_acl_tcam_region *region); diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c b/dri= vers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c index 6e444525713f..3a636f753607 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum1_acl_tcam.c @@ -112,7 +112,8 @@ mlxsw_sp1_acl_ctcam_region_catchall_del(struct mlxsw_sp= *mlxsw_sp, static int mlxsw_sp1_acl_tcam_region_init(struct mlxsw_sp *mlxsw_sp, void *region_pri= v, void *tcam_priv, - struct mlxsw_sp_acl_tcam_region *_region) + struct mlxsw_sp_acl_tcam_region *_region, + void *hints_priv) { struct mlxsw_sp1_acl_tcam_region *region =3D region_priv; int err; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c b/dri= vers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c index 4808b29294d0..6c66a0f1b79e 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c @@ -139,7 +139,8 @@ static void mlxsw_sp2_acl_tcam_fini(struct mlxsw_sp *ml= xsw_sp, void *priv) static int mlxsw_sp2_acl_tcam_region_init(struct mlxsw_sp *mlxsw_sp, void *region_pri= v, void *tcam_priv, - struct mlxsw_sp_acl_tcam_region *_region) + struct mlxsw_sp_acl_tcam_region *_region, + void *hints_priv) { struct mlxsw_sp2_acl_tcam_region *region =3D region_priv; struct mlxsw_sp2_acl_tcam *tcam =3D tcam_priv; @@ -147,7 +148,8 @@ mlxsw_sp2_acl_tcam_region_init(struct mlxsw_sp *mlxsw_s= p, void *region_priv, region->region =3D _region; =20 return mlxsw_sp_acl_atcam_region_init(mlxsw_sp, &tcam->atcam, - ®ion->aregion, _region, + ®ion->aregion, + _region, hints_priv, &mlxsw_sp2_acl_ctcam_region_ops); } =20 diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c b/dri= vers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c index e98037e4d03e..ded4cf658680 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c @@ -318,6 +318,7 @@ mlxsw_sp_acl_atcam_region_init(struct mlxsw_sp *mlxsw_s= p, struct mlxsw_sp_acl_atcam *atcam, struct mlxsw_sp_acl_atcam_region *aregion, struct mlxsw_sp_acl_tcam_region *region, + void *hints_priv, const struct mlxsw_sp_acl_ctcam_region_ops *ops) { int err; @@ -334,7 +335,7 @@ mlxsw_sp_acl_atcam_region_init(struct mlxsw_sp *mlxsw_s= p, err =3D aregion->ops->init(aregion); if (err) goto err_ops_init; - err =3D mlxsw_sp_acl_erp_region_init(aregion); + err =3D mlxsw_sp_acl_erp_region_init(aregion, hints_priv); if (err) goto err_erp_region_init; err =3D mlxsw_sp_acl_ctcam_region_init(mlxsw_sp, &aregion->cregion, diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c b/drive= rs/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c index 013ab43a7727..e935c36638d9 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_erp.c @@ -1313,7 +1313,8 @@ static const struct objagg_ops mlxsw_sp_acl_erp_objag= g_ops =3D { }; =20 static struct mlxsw_sp_acl_erp_table * -mlxsw_sp_acl_erp_table_create(struct mlxsw_sp_acl_atcam_region *aregion) +mlxsw_sp_acl_erp_table_create(struct mlxsw_sp_acl_atcam_region *aregion, + struct objagg_hints *hints) { struct mlxsw_sp_acl_erp_table *erp_table; int err; @@ -1323,7 +1324,7 @@ mlxsw_sp_acl_erp_table_create(struct mlxsw_sp_acl_atc= am_region *aregion) return ERR_PTR(-ENOMEM); =20 erp_table->objagg =3D objagg_create(&mlxsw_sp_acl_erp_objagg_ops, - NULL, aregion); + hints, aregion); if (IS_ERR(erp_table->objagg)) { err =3D PTR_ERR(erp_table->objagg); goto err_objagg_create; @@ -1444,12 +1445,14 @@ void mlxsw_sp_acl_erp_rehash_hints_put(void *hints_= priv) objagg_hints_put(hints); } =20 -int mlxsw_sp_acl_erp_region_init(struct mlxsw_sp_acl_atcam_region *aregion= ) +int mlxsw_sp_acl_erp_region_init(struct mlxsw_sp_acl_atcam_region *aregion= , + void *hints_priv) { struct mlxsw_sp_acl_erp_table *erp_table; + struct objagg_hints *hints =3D hints_priv; int err; =20 - erp_table =3D mlxsw_sp_acl_erp_table_create(aregion); + erp_table =3D mlxsw_sp_acl_erp_table_create(aregion, hints); if (IS_ERR(erp_table)) return PTR_ERR(erp_table); aregion->erp_table =3D erp_table; diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c b/driv= ers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c index 36921ed1d2d5..1077c893438b 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c @@ -572,7 +572,8 @@ mlxsw_sp_acl_tcam_region_create(struct mlxsw_sp *mlxsw_= sp, if (err) goto err_tcam_region_enable; =20 - err =3D ops->region_init(mlxsw_sp, region->priv, tcam->priv, region); + err =3D ops->region_init(mlxsw_sp, region->priv, tcam->priv, + region, NULL); if (err) goto err_tcam_region_init; =20 diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h b/driv= ers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h index a90942bc1fe9..c2a340270982 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h @@ -206,6 +206,7 @@ mlxsw_sp_acl_atcam_region_init(struct mlxsw_sp *mlxsw_s= p, struct mlxsw_sp_acl_atcam *atcam, struct mlxsw_sp_acl_atcam_region *aregion, struct mlxsw_sp_acl_tcam_region *region, + void *hints_priv, const struct mlxsw_sp_acl_ctcam_region_ops *ops); void mlxsw_sp_acl_atcam_region_fini(struct mlxsw_sp_acl_atcam_region *areg= ion); void mlxsw_sp_acl_atcam_chunk_init(struct mlxsw_sp_acl_atcam_region *aregi= on, @@ -265,7 +266,8 @@ void mlxsw_sp_acl_erp_bf_remove(struct mlxsw_sp *mlxsw_= sp, void * mlxsw_sp_acl_erp_rehash_hints_get(struct mlxsw_sp_acl_atcam_region *aregio= n); void mlxsw_sp_acl_erp_rehash_hints_put(void *hints_priv); -int mlxsw_sp_acl_erp_region_init(struct mlxsw_sp_acl_atcam_region *aregion= ); +int mlxsw_sp_acl_erp_region_init(struct mlxsw_sp_acl_atcam_region *aregion= , + void *hints_priv); void mlxsw_sp_acl_erp_region_fini(struct mlxsw_sp_acl_atcam_region *aregio= n); int mlxsw_sp_acl_erps_init(struct mlxsw_sp *mlxsw_sp, struct mlxsw_sp_acl_atcam *atcam); --=20 2.20.1