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,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 18D00C4360F for ; Sun, 24 Feb 2019 06:46:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D0BE5204EC for ; Sun, 24 Feb 2019 06:46:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="kMVmMyEp" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728153AbfBXGqw (ORCPT ); Sun, 24 Feb 2019 01:46:52 -0500 Received: from mail-eopbgr40071.outbound.protection.outlook.com ([40.107.4.71]:39872 "EHLO EUR03-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726509AbfBXGqv (ORCPT ); Sun, 24 Feb 2019 01:46:51 -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=quQAUtKu8bYnLkvVNgfSU9KaG6YPzi28PzrjoYEEtIc=; b=kMVmMyEpjSPD8+dX/eh2bVYJwUWno7DRyp5GdHnDRU7/jRsDjz3Bb1aYhlNC0AI6kPl0YEM2V7PsdmNh0AJj3s7PIlaNChusfMk0iMfbVu7g4QmF5be/mabO92HolnGYz3Uos3idwdZXW02sFM5T2V5Soi+KQzVxShllA3Kd/ns= Received: from AM6PR05MB5240.eurprd05.prod.outlook.com (20.177.196.214) by AM6PR05MB4343.eurprd05.prod.outlook.com (52.135.162.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1643.18; Sun, 24 Feb 2019 06:46:30 +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.1643.019; Sun, 24 Feb 2019 06:46:29 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , mlxsw , Ido Schimmel Subject: [PATCH net-next 09/15] mlxsw: spectrum_acl: Don't take rtnl lock during vregion_rehash_intrvl_set() Thread-Topic: [PATCH net-next 09/15] mlxsw: spectrum_acl: Don't take rtnl lock during vregion_rehash_intrvl_set() Thread-Index: AQHUzAyr0dmuw1udz06MaT1WjBwWvw== Date: Sun, 24 Feb 2019 06:46:29 +0000 Message-ID: <20190224064525.14913-10-idosch@mellanox.com> References: <20190224064525.14913-1-idosch@mellanox.com> In-Reply-To: <20190224064525.14913-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6P194CA0033.EURP194.PROD.OUTLOOK.COM (2603:10a6:209:90::46) To AM6PR05MB5240.eurprd05.prod.outlook.com (2603:10a6:20b:64::22) 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-ms-office365-filtering-correlation-id: a1f4a31a-cc63-450d-f75e-08d69a23ce43 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(5600110)(711020)(4605104)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:AM6PR05MB4343; x-ms-traffictypediagnostic: AM6PR05MB4343: x-microsoft-exchange-diagnostics: =?iso-8859-1?Q?1;AM6PR05MB4343;23:YzkuiJiwa2UMZe01P5n8/yYVZXewiywTkWrmOYa?= =?iso-8859-1?Q?dLO/hua3HjLQprvaf6Pc0P9vEFIk9HXIxQ59zr1Cs4+aSmxK7YzgcWn7+n?= =?iso-8859-1?Q?r/iGtWXkxYxuhDpllrNcB9e04+d47L8kKslgP7nznz4AuGqfw7o9Qm4Mju?= =?iso-8859-1?Q?txYItr72WrcbgLF68UWtLmIw+d4qkEeETR5dDziNNu/as0oidO/JYzROLi?= =?iso-8859-1?Q?bRg/IWyxXsIEPGP9gN8tY9xnrnHJFN9UWvo5FkDlU9BRxv9UcgOGLGMVvT?= =?iso-8859-1?Q?H1hA6af0odhKgcy4Z3Tqr2uWLCVCgPJKosjbFAU2fRojmgdVvgIipQFgDZ?= =?iso-8859-1?Q?K48ZklNSaDoUH9lBJh9cVKZ7RT7whyy5Wi1BXGEOuN2NRVlG6KoIBDGAdS?= =?iso-8859-1?Q?F0wSlGiL2bdH+Gi2rVX2Mm1QrXtWDs/vbpWBx/mAaRTOWgBwl7SRJVxYwU?= =?iso-8859-1?Q?hmoiQVtxE05eibRwssftnYMyNj80yhxgVvBbfkr/kEmfDcRvLvdiX7nvkH?= =?iso-8859-1?Q?gaTvcL0EaO50pM5HbR7ESXBqEVJRl9DEajD0VaCmvLSigxskmzZinamwfh?= =?iso-8859-1?Q?ZK/AgQeRvLAe8jAyD30S1xEy/kqYa/UzTAFaR6ZOBxUfxKa6RkttXQYSvO?= =?iso-8859-1?Q?43CfU+7GoKz03O4oZn7bsxbcXpxVbyNXHO+iODDnaNPFewlte5IrVo1WB3?= =?iso-8859-1?Q?pymmvw/tAlQjuzURhHLEKp05XxiamgbBt7Bc94QO0KLxkw0W99GC8R88vl?= =?iso-8859-1?Q?sFkliEx4luOxPTtdFJMdPj9WjtMJQdgU9YimqJLzaaXD0i0Ab/m6c5G1R5?= =?iso-8859-1?Q?FBEt1ZvwvugASNesE6F6P2qu1b5GmqFNy6zmXlJfTEK3Eu+kcSqNapE8yt?= =?iso-8859-1?Q?Yl8rUGoOn1S/2Q5FQMh7mnuf25UVnCubpo34WqL/uzIfuMpt9hZm8wjAX0?= =?iso-8859-1?Q?TChhm0ewPOZvYOHdeHWBQKLX/4cDHH+5eIFWg8bhuy7AD43Gw3CsgbSZpb?= =?iso-8859-1?Q?ZuvHEX2OTBwbMtUID6/tRr7wd5+1ee2G8jAzay8911oguSFu4V0puW5feJ?= =?iso-8859-1?Q?2+DnZxh0fCaL/V2mR99hKT17aFTwxMF5qr16z001Cn+hyyW6PlUAhV0FDV?= =?iso-8859-1?Q?d4VfKmtmk+FF6+Os3B9Bh5YGw6dG/7iCXuftvq7X+MlxEiKtkvx+AcDdlT?= =?iso-8859-1?Q?OlVnZ176epS6P/RPORdofUIWNxtDYnjSu87CuA8aKaImrhvheR3Ufy51+N?= =?iso-8859-1?Q?10ZbHc5i8U2pr1fa4/Na2UVCYcRqnxr5vqOt+ZqRX6PSe9SzjNm/LWopJv?= =?iso-8859-1?Q?QZ3tS1hBuOQoN+6dhOycNCAAixX11/fXmRw5OIXmpgg57XTvvQ5hPWS1tb?= =?iso-8859-1?Q?Iudg3tmvuWtF8LqYJE0zyYYoNdYnl908JgLAId/zjS0huanxQDg=3D=3D?= x-microsoft-antispam-prvs: x-forefront-prvs: 09583628E0 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(396003)(136003)(376002)(346002)(39850400004)(199004)(189003)(102836004)(5660300002)(3846002)(14444005)(8936002)(6116002)(5640700003)(256004)(6506007)(386003)(1076003)(71200400001)(71190400001)(14454004)(6512007)(6436002)(81166006)(2351001)(81156014)(1730700003)(6346003)(50226002)(26005)(6916009)(107886003)(2906002)(99286004)(86362001)(2501003)(486006)(2616005)(4326008)(11346002)(54906003)(66066001)(316002)(476003)(446003)(53936002)(68736007)(52116002)(7736002)(6486002)(8676002)(478600001)(106356001)(305945005)(105586002)(25786009)(186003)(36756003)(76176011)(97736004);DIR:OUT;SFP:1101;SCL:1;SRVR:AM6PR05MB4343;H:AM6PR05MB5240.eurprd05.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX: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: vthZ6sKnO2vdERJFgrtyntCoM3KwQ++BfTVB+w95jsc6zzTDJ6zqRfwYtVUvaTRztjuPaYCOoZVYJd7LoIzUi6jBKxcyKKh+zCC0SmObzLIkMtzJKSUj3EMCjNpJKgF0WjYO+HerlvTXFKkl6TppqJ23WXxpyrkLg5WQ0llpqO05SDEuaGlyYa0pl4ELrxpmYF1VjyCkPi81sVttJrssSqJyorrgd3L/ieA004V3mVKAE8CDegcHoMzBiDTkFP9bPpTVlwhQ27xoVhyOQuKGm/BjrnHjyOGtcavNHfSWjSxy0n+G6YOYaaQq/wYQR+DasSwq2zN8A4cEwJP+gqgQcSjyl6of4/VJG79BNMx/GZdW/YLCc1Hs+6QsFMccjOHAIpzTTmSOTYLpBX8A7htYvtIS5yFo48TWAnXFpbYkbMg= 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: a1f4a31a-cc63-450d-f75e-08d69a23ce43 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2019 06:46:29.0034 (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: AM6PR05MB4343 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jiri Pirko Relax dependency on rtnl mutex during vregion_rehash_intrvl_set(). The vregion list is protected with newly introduced mutex. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel --- .../net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 11 +++++++++-- .../net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c b/driv= ers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c index cdbcf612b6fd..5c8976e471ad 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c @@ -38,6 +38,7 @@ int mlxsw_sp_acl_tcam_init(struct mlxsw_sp *mlxsw_sp, size_t alloc_size; int err; =20 + mutex_init(&tcam->lock); tcam->vregion_rehash_intrvl =3D MLXSW_SP_ACL_TCAM_VREGION_REHASH_INTRVL_DFLT; INIT_LIST_HEAD(&tcam->vregion_list); @@ -85,6 +86,7 @@ void mlxsw_sp_acl_tcam_fini(struct mlxsw_sp *mlxsw_sp, { const struct mlxsw_sp_acl_tcam_ops *ops =3D mlxsw_sp->acl_tcam_ops; =20 + mutex_destroy(&tcam->lock); ops->fini(mlxsw_sp, tcam->priv); kfree(tcam->used_groups); kfree(tcam->used_regions); @@ -784,7 +786,9 @@ mlxsw_sp_acl_tcam_vregion_create(struct mlxsw_sp *mlxsw= _sp, INIT_DELAYED_WORK(&vregion->rehash_dw, mlxsw_sp_acl_tcam_vregion_rehash_work); mlxsw_sp_acl_tcam_vregion_rehash_work_schedule(vregion); + mutex_lock(&tcam->lock); list_add_tail(&vregion->tlist, &tcam->vregion_list); + mutex_unlock(&tcam->lock); } =20 return vregion; @@ -804,9 +808,12 @@ mlxsw_sp_acl_tcam_vregion_destroy(struct mlxsw_sp *mlx= sw_sp, { const struct mlxsw_sp_acl_tcam_ops *ops =3D mlxsw_sp->acl_tcam_ops; struct mlxsw_sp_acl_tcam_vgroup *vgroup =3D vregion->vgroup; + struct mlxsw_sp_acl_tcam *tcam =3D vregion->tcam; =20 if (vgroup->vregion_rehash_enabled && ops->region_rehash_hints_get) { + mutex_lock(&tcam->lock); list_del(&vregion->tlist); + mutex_unlock(&tcam->lock); cancel_delayed_work_sync(&vregion->rehash_dw); } mlxsw_sp_acl_tcam_vgroup_vregion_detach(mlxsw_sp, vregion); @@ -842,14 +849,14 @@ int mlxsw_sp_acl_tcam_vregion_rehash_intrvl_set(struc= t mlxsw_sp *mlxsw_sp, if (WARN_ON(!ops->region_rehash_hints_get)) return -EOPNOTSUPP; tcam->vregion_rehash_intrvl =3D val; - rtnl_lock(); + mutex_lock(&tcam->lock); list_for_each_entry(vregion, &tcam->vregion_list, tlist) { if (val) mlxsw_core_schedule_dw(&vregion->rehash_dw, 0); else cancel_delayed_work_sync(&vregion->rehash_dw); } - rtnl_unlock(); + mutex_unlock(&tcam->lock); return 0; } =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 77de76647ede..5965913565a5 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.h @@ -17,6 +17,7 @@ struct mlxsw_sp_acl_tcam { unsigned long *used_groups; /* bit array */ unsigned int max_groups; unsigned int max_group_size; + struct mutex lock; /* guards vregion list */ struct list_head vregion_list; u32 vregion_rehash_intrvl; /* ms */ unsigned long priv[0]; --=20 2.20.1