From patchwork Fri Aug 3 12:57:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 953220 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="uLSt5gYH"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 41hnCw71CVz9ryn for ; Fri, 3 Aug 2018 22:58:36 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731763AbeHCOys (ORCPT ); Fri, 3 Aug 2018 10:54:48 -0400 Received: from mail-eopbgr00045.outbound.protection.outlook.com ([40.107.0.45]:10720 "EHLO EUR02-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729603AbeHCOyr (ORCPT ); Fri, 3 Aug 2018 10:54:47 -0400 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=j0vyDrWoHTc21bP9/0Me2mG7Dwcb1YmbaT+hBDjehmM=; b=uLSt5gYH3Wa4nnCq0ii3N5SeP54MdVUk2bERSj03kr9qpTCeL2Yq7c4lCr4LvXEmyyS6uSPdgMWoHUq/R0ccaZoxdKHea6AnvQ5vAMUXB2OubWvSrZTS4CX7NPE07Z1SZB5nxZGVUiejORXlCkC9sjmGQ5/Bv6Y4YwaCq92DbYw= Received: from splinter.mtl.com (79.177.4.144) by AM0PR05MB4977.eurprd05.prod.outlook.com (2603:10a6:208:d0::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.995.19; Fri, 3 Aug 2018 12:58:27 +0000 From: Ido Schimmel To: netdev@vger.kernel.org Cc: davem@davemloft.net, jiri@mellanox.com, petrm@mellanox.com, nird@mellanox.com, mlxsw@mellanox.com, Ido Schimmel Subject: [PATCH net 2/4] mlxsw: core_acl_flex_actions: Remove redundant resource destruction Date: Fri, 3 Aug 2018 15:57:42 +0300 Message-Id: <20180803125744.16200-3-idosch@mellanox.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180803125744.16200-1-idosch@mellanox.com> References: <20180803125744.16200-1-idosch@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [79.177.4.144] X-ClientProxiedBy: DB6PR0202CA0017.eurprd02.prod.outlook.com (2603:10a6:4:29::27) To AM0PR05MB4977.eurprd05.prod.outlook.com (2603:10a6:208:d0::30) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a90b6411-94fb-4577-ea28-08d5f940cee5 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM0PR05MB4977; X-Microsoft-Exchange-Diagnostics: 1; AM0PR05MB4977; 3:Ikd/6Dh6Wv5ePxuuC9RXAH/QSgH67HTtFu6mAph3eC6eqAJ5chotohG+UqdPEY8/4c4FyrRlbZeTe5c7oyEmodu2Q2UQtDC90TU4wOFYG2+gG55TPPrhvrG21+STfney3DdjqyMY/sdpwK9iubwHKwQWwfgAXecLLhZTAukYj13FGz3TdXH1hx3ZTavq38DkaEf+jStsddujppLpK1a4zJ9Xi4q1cOpiipwgj6hc3ZL5W5OozcNUb2Ijsetzf1d2; 25:t5UfNbwXmSPpeqaJDN9pKw89yDGVVmQwAURwE+cfDMykrtgspE7tVX1ohJMcgF5Dzjf0PziKZG3UUesKkOZ9XoHGnOrmbbKpESllwRMhnd15a56+YEdef6+THZl+svLSsq2B0JtERfzXzJCh6J1HzwnxwmdIyxLxgqezzyjkly/pdYHCuW8bozw/aP5cA2Cut9ykPbsQrcd3LvG3TICjlHKv7xlWpOrd4BQSqf3dRQiRI1DCqhg3jDvzXvH3zkC7TmFQCkBnmTWgb8Y4QOujN/xj8W+D1qizfu+8eBKrwvsOOkswXDUSd9JlLhBckbXS1hw7bBnERV0C2frefj1jTQ==; 31:aZDR0rboIG7VRJqVqYAXPy4+x7IhafzYjAFgJ1zHZ6+pYWWoREkJbA/dwdh8Lp8I9/348/pAzbLbMoW7jVX0axPfyLwsBnFpFfE+4FDfTRcynDeq6u2Nu2GpdzTZXclv5mD97ZEh5RfG6iJHxBjG9njj6VfAuVnGDpkRosu9wM2Hm8JvCq5vSp2jXn91ETdQLidvSIQpmVEfGzm9/LrvIuEBfpVONeDpZ+sazvf7F5E= X-MS-TrafficTypeDiagnostic: AM0PR05MB4977: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; X-Microsoft-Exchange-Diagnostics: 1; AM0PR05MB4977; 20:jlJq5VQaGEDnzTVTRObTlc35amO7YZUpUoaiDgfHRNZt6fc+gE6ReC4iqWVrJPb7esA6ndhu4t80Ljd99wh4vtGCRazXhtVPnW2rWCfRzr1KKH6yweyanmRl6MBjKzuEWSTLvApk7gUFPP6wouwb2PTrcRZrxCO1mrz9GFITdDGG6lRzefljPvvYVVkpcALDU01EXbI0rVAyDc/y3N4Y597jMV+9g7YsTG63o/Z86g3xEcMt3zkOgSYPPnm4W/c0w6vT/dxBFdNv9wnxdDZNe31L63nDagjWPI5UzS+aTF0Yea1UQQ/vq0gPkxkdmBdz+WKAo3U8a8ILEpbJigC5zScfZ0pOs1n99tnO875cqFCXGRpt2xtKvx/o+U1j+dhoXoQh0RYK+8BmQCfNRDvLJNSKDp1IbPCadXNy4JgSBgcvhLVNPyQ2PkG7yIXzIEGL90V2NGr2PGKGhr1ucZMUJVIDMHZBWK4ElhCfV4G0YSBu5M6OsVflbh/7rutrNuzl; 4:cPB32ALQFwb+/oiLiCkD3LzPR38ad6ORY/TpAUY/B76zZ0cFnS0VxTzaYtY8bdNJ1L/w1cyDHeoeMrqBH1b772IXNT2LR2Bmn2l4bKg2iBAQPYe5RerHg4y+HXgtigpqTXpLXYFkJWS08ruty8BIw68pD3pGjlYtQV4WpxNkhGAE/jd1xeeAjpWKina9UCIRSnqssRLILwUuDgk96Si5iV8bvLpIKAIFTdcCjsJXrkffRhfUtaCKJq2VfXYU/mXX583l1NUW91uQs/6Apefg9g== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231311)(944501410)(52105095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011)(7699016); SRVR:AM0PR05MB4977; BCL:0; PCL:0; RULEID:; SRVR:AM0PR05MB4977; X-Forefront-PRVS: 0753EA505A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(366004)(39860400002)(346002)(396003)(136003)(189003)(199004)(386003)(50466002)(68736007)(50226002)(16586007)(6512007)(6506007)(53936002)(36756003)(51416003)(316002)(52116002)(6486002)(4326008)(107886003)(5660300001)(25786009)(76176011)(2351001)(478600001)(6666003)(97736004)(476003)(81156014)(53416004)(66066001)(6916009)(1076002)(48376002)(47776003)(8936002)(86362001)(2616005)(7736002)(8676002)(105586002)(446003)(305945005)(486006)(2361001)(11346002)(186003)(81166006)(956004)(14444005)(6116002)(16526019)(106356001)(3846002)(26005)(2906002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR05MB4977; H:splinter.mtl.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-Microsoft-Exchange-Diagnostics: 1; AM0PR05MB4977; 23:RJk0xuVuKdC1dzd3tO+TUMw0SCYOWnwKXV9oMtsSQ+eW+zUfHdxD5tB5FLk0ykqvyp0Lb5qEesBYFGs0NRttdtMKQg02B3RgMXislQRYJUAgn0Dov8Veue53kmQJV3OsbnRNDRoxZl5NUMS/MwXJCpJhDHyZiYwEag7U4+ZJZlFQWK3e9bepi2Oq4axY3cEGQprbUl7vM3XGOw2eIlXgVi39pTgJGDqKL5dy49yvAadNIKWYam/ql8hXC3aXkL2CwXBMyyH4vYWaKHTr+KX42STHfs5jbqG8MkpyC3ffPxrhxYqjgjzksZyJfVPzyrsr1X3k7EhhSjSdOuBSDPrIrBD+swYvpKdOpp3ktWXX4/XtJ8XQGE0y1DNv1j8pLH6BxOHFEFrwwN5wbX+i2k4Bh/LRiGwBsWwV9Xu7fyIeR2iIq7HcGekmej/wZOw+wt71jfcsUJSqMW4Ss1G4Ym5Ic/iFPjRkX2K+16a3b+QndsIUpIMSj27wfz64Nt4r0MW4srIPEirojz6FIGzX0ogbFoVPf3k5OGUBNSoz1Ts4LQhKh4RLwMGaaJR/7aoCty9BOfuSw6KsRlrt7pcsBNs9sYlsMepKwtXVerm/jqXS350jm0Jah+uwny77zHXHt2npCYEiXBYFuzmskjxKBnxBWQ4/CS9SrlQl3tZ9jX649arO0+ngftmwKfW1dnXlcyB3MiqTsRNKD14+484xTxvtQW1z7m3ThYhAi5HQhR8rmE1ch1OWEDVHUfXFjA/icOg7AF+7HA24Ax0D4p662LPMLm7AyxWgDB67Prw0RfKA6ei8BWfy9xgrh/uVIfbvcG1f5N3xxKmw5B/upxfX/XY0OOjYxje7GydGqSyRqezIS7wNdtsp9n/ahkXg2Cvd5h+jLOaHs33TwRjs3jjSzk/dCMbfOEytY+FDkQsEEmEXxe6PBf7FEZI7q8oBIEyJjoIKpqp3UV5+lKS+NaWJptjsv7Ku4G7Xlno9UOrWHj1/HI7gQAdXhRwvbgiqbjZu9j29QqVFeADC20iYE4vomsD8K+h9v73XRmwq3PU7nOsNqgOp+Gt4JGEcdm5SUuq7CIn7RA7XhMoXS/CJrRU2v2/sQ5h6Kt7neXt400f4kv7aA4ukkEWtBsV4ifpbScdTsxS5dMvMhT9sAUSudgXEJe7xd1W2tPx/QRjXa9ZpZxjtshIh8GKcK49+LoMWiElyCvWds8BPz8OGzOAypRo+TxSa283VqdtdjHseqtgBMSVM35lk0wsZHmiLs569TmTov9PdA/Q0+iDyk0vloPDedhR8LA== X-Microsoft-Antispam-Message-Info: JQ/gy4g8s9Gn+C08QqvBd4qEDHciEziKDHH7yCN3/zZVslkPxDsuJkbyU5nX4WRAvvsHfGi6LbQJVIQAQzNGM+SWSq3VGEiNaMjmyTagcMtMnmQwuBH2SLgPWM1svBP1nKx3RD7lXLD8po2ZSSUEszMJr8xtVu+RU/lBJJgdnTfdUYS4VDR6dwoIA+O59khd7djMOKFBPS5NIaViAbo1KgW+yFxIww3KyUBxmIQ/MYMYhhRPU2IgRb6jMEGdJmrZ3NBzUS7XkzZ/sWbhghfpaUpJ2GjWzjUDeYkFFHkIDVF+Z92lNkOT2F9ISKNmlmaKTdiSfbz8na/ZOkK6Z3XyLq8H4LalgrY97VoolaufhEM= X-Microsoft-Exchange-Diagnostics: 1; AM0PR05MB4977; 6:K0YI5nIBY10X2JxvjJ4WqZN00pBQvKRIAuoiLZy8xKEInuqAQY72bRHEHsP78fH/vk0m2KyoWRkl+W7Sel03Mb5pFsObGMdNRlsKgsUlvqM0/0vZ3Ww/lg54q4xx3KFL/2BvFpT6qpwWkNj48KV2B/dBF92NazJXLYm+ViH/q/tnoeZcKkHJ7+fXTVqPRAGdh0sktnI5hNU6awSyCTtMxUo5Rck4pRj8+i5qQChdGvSMWYfbnGmKgpFcnHIRUSeTR6qU/zqv8/JyoDM0s9bbWrSQg83kwpSCoQBXlWPWy47Ibai1q4/v9qsB4Uq56rZghVaKki6pqrifhg/kDDzeM41H4nCkq2ul/ab66FTVT9wwJ4qOJws9D0XtngOhICFkOy1RozCZe0kQ+fnXAh2KFGBo4kIId+XqBS9+gb5ahTp6k+a48TfCceNnNcmc8BQejooi54E+E81/hlkuB9p/Pg==; 5:2P/kNebFiah7iNI0aVB1DfWLWNdw/yhTaHNjxxkx7eN3rcok4eMbiknlSL+A3CB9XVgdMj93hi8KGmCZ33dkICUcRlS4gmHUurcpoQIkv0YKlcma82w64Ssb5pMHsd+V/jIJSnRNIll0OI4dm8H3GlIVf+22T25XSoVrh47iapU=; 7:iJWtc6SXU6PBVXSnN/tiYiKYdZglJm9elQ3B1RE22WNH2RjIsG8P6iuTMV4Vz1dbLfkVw2oNPpea1yuaiQs5LVEhCnVPTu8R2o4zlqXDPBRtWCHat9ONmObB49PCdp4Voe3z9hnQVCEMfQeDWXT0q02eWuGESHdTSdavRGzuol2LiQx7jGtoYv5cJ/+HjDLWnH7QQ4la15j9xvE6UeserIsiLywSuNBDscw2ldQXI2vMLHgHwrFB3HxXwJ4hrLUL SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Aug 2018 12:58:27.8934 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a90b6411-94fb-4577-ea28-08d5f940cee5 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB4977 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nir Dotan Some ACL actions require the allocation of a separate resource prior to applying the action itself. When facing an error condition during the setup phase of the action, resource should be destroyed. For such actions the destruction was done twice which is dangerous and lead to a potential crash. The destruction took place first upon error on action setup phase and then as the rule was destroyed. The following sequence generated a crash: # tc qdisc add dev swp49 ingress # tc filter add dev swp49 parent ffff: \ protocol ip chain 100 pref 10 \ flower skip_sw dst_ip 192.168.101.1 action drop # tc filter add dev swp49 parent ffff: \ protocol ip pref 10 \ flower skip_sw dst_ip 192.168.101.1 action goto chain 100 \ action mirred egress mirror dev swp4 Therefore add mlxsw_afa_resource_del() as a complement of mlxsw_afa_resource_add() to add symmetry to resource_list membership handling. Call this from mlxsw_afa_fwd_entry_ref_destroy() to make the _fwd_entry_ref_create() and _fwd_entry_ref_destroy() pair of calls a NOP. Fixes: 140ce421217e ("mlxsw: core: Convert fwd_entry_ref list to be generic per-block resource list") Signed-off-by: Nir Dotan Reviewed-by: Jiri Pirko Signed-off-by: Ido Schimmel --- .../net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c index ce280680258e..d664cc0289c2 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c @@ -327,12 +327,16 @@ static void mlxsw_afa_resource_add(struct mlxsw_afa_block *block, list_add(&resource->list, &block->resource_list); } +static void mlxsw_afa_resource_del(struct mlxsw_afa_resource *resource) +{ + list_del(&resource->list); +} + static void mlxsw_afa_resources_destroy(struct mlxsw_afa_block *block) { struct mlxsw_afa_resource *resource, *tmp; list_for_each_entry_safe(resource, tmp, &block->resource_list, list) { - list_del(&resource->list); resource->destructor(block, resource); } } @@ -530,6 +534,7 @@ static void mlxsw_afa_fwd_entry_ref_destroy(struct mlxsw_afa_block *block, struct mlxsw_afa_fwd_entry_ref *fwd_entry_ref) { + mlxsw_afa_resource_del(&fwd_entry_ref->resource); mlxsw_afa_fwd_entry_put(block->afa, fwd_entry_ref->fwd_entry); kfree(fwd_entry_ref); }