From patchwork Thu Mar 26 06:37:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261802 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=cK+TNFyp; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwL73L5pz9sRY for ; Thu, 26 Mar 2020 17:38:39 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727695AbgCZGii (ORCPT ); Thu, 26 Mar 2020 02:38:38 -0400 Received: from mail-eopbgr30065.outbound.protection.outlook.com ([40.107.3.65]:59543 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726213AbgCZGid (ORCPT ); Thu, 26 Mar 2020 02:38:33 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lskYZjw31fY/+ojKQJQ8gi/kINtevt0BJq+5Egu1DhMEx8VoQdKFLo0NOG+xDBvq2BwfLf8pJJ1vugBydNbw2IgtnfVMPICVNE6kHm7bqxxfvHfGAZuupdSVkaRJKaCrE4N/aAQwgV1STMQXnr4ow05JR67A2QrBotM5oS8ukb78uSphu45smIZjhVRBFOVwmRYmtClgAOFR0feTboiXMMeUE0EEIyxjyO6UK7ZOOR2YVJ1Xe7+dOu0lWL0pU1rNL6fBAGEElbT6tfoTipGMaabBPtdQJCRjFgNbnXff8IYZVrIw0cIpG9LawRPQmutGVRPntqYiYlsnVxvnWt7tRA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=A+/iqBQSWTZOqPKOiJ6O1lINWegx0IqDguSVb1gkD3Q=; b=gtBHYVWLDUhK/2iIRrCqzUyWu80/whw8VX1SPKlRJIAbb3FP3hcI3AKttYd5JgGTZzSP5CJ0q4yg7nJi1LPvu7nPXRVirwILdYVwfiKfGUQt9muzARenBIhzE29vZsc6EOeWpXVLPGq3s0/utaw48sA0/OzJEJhgL3IFa6swMomzjS7wnFLr6RULhl6IpFUM0RUCLzyBCNnaYtQAC7CiPhZzEpnZz4k/srVV0g6VGI84zmJqR3JlJ3Nxy+31KUWSeQrRTQExGkGghFADacwxu+rBAbRVXxUFSFDVzR/0SwyPL3rLrkujtjogFUIdyXDBN52GPz2frko1rKJ3hILyJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=A+/iqBQSWTZOqPKOiJ6O1lINWegx0IqDguSVb1gkD3Q=; b=cK+TNFypDynhgAUTKRebh1n++q4RMA8NVxIdxnDMM4GpE9N68xuWLNKnkG9Wd56+qNieXetMOK+Nvt2/HLM77YArTJp/XK/uwRWHhpFtLT+jJMwwc1Un6NMRqnoMu9BionulnNH16QKLbTFhxnBJeYkgLr4DtafFqsCo966hXk0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:30 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:30 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Dan Carpenter , Leon Romanovsky , Saeed Mahameed Subject: [net-next 01/16] net/mlx5e: Fix actions_match_supported() return Date: Wed, 25 Mar 2020 23:37:54 -0700 Message-Id: <20200326063809.139919-2-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:27 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 924a8d55-4201-44b3-185c-08d7d1504bb1 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4714; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +BVoa82beQ+7aq5p/TYIGECpRBl05FHjR3nFrLrRs0qKvQBBDOcdB5OxpzMD3kQLbu0RFlMt6B+cxcKzZsLh0jkAlxioWM7WN3kfVP2jmgfPtEZq0NIEoh1K9fjpX7k0habqB9Qg6j0EMfmSaSA8DpnqPJHlynei4fw6PEOnog0OFvc/v6owU7zabPJkob4FwZdrLWYnagHD5g1jnq79ciaiR7HAwGtKS3rgk0VSXbb4GW1nqGPF+aXYXyHMWMgc2ZDglafotD5c2wBm7yyaVF/i9eIBeylgvM2PzlMjCaRsyYeu6mki90vVYLNaDJsH/Yc8wefeHYkSiGHQuqrbhSG+UYSkHCyNV9ZRKFd/rvGwWGHYBemkcP0kMx67f4tDLyolanBEkoS5vXULJwsAMOmRDnYFLLNryuDvJTBw5dsCtSTMXskfAlY8ukMlJQnzDQCVPgWIzcWO+D6kIcPKzQLQvD4vDTeFdXPAPaUCUS4scAOb6u30n3CMd8mhLHrk X-MS-Exchange-AntiSpam-MessageData: jVANMDWjJ++lWj+V9eBXwyVeW1wRtwBZOv1dm5hyB5QZ9zXxoJoOwibgkAsRjQzXagupCUXUN8lQpyiEqiA3sX2nehM6cOPFLNpqkUbiO45nnzps3zjVDZYhRu2a8cr7cWVymQhKxU7a2GCCFSWpFg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 924a8d55-4201-44b3-185c-08d7d1504bb1 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:30.0686 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ECBXye9xFSVL215H/rKoAe3bHomrZqCOvLXI069qaZ0OIzlhtllvuENRGhYlxUi9HtMsp2a9gut4Epn4ilZMdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Dan Carpenter The actions_match_supported() function returns a bool, true for success and false for failure. This error path is returning a negative which is cast to true but it should return false. Fixes: 4c3844d9e97e ("net/mlx5e: CT: Introduce connection tracking") Signed-off-by: Dan Carpenter Reviewed-by: Leon Romanovsky Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c index 901f88a886c8..c7ed468db3e0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -3057,7 +3057,7 @@ static bool actions_match_supported(struct mlx5e_priv *priv, */ NL_SET_ERR_MSG_MOD(extack, "Can't offload mirroring with action ct"); - return -EOPNOTSUPP; + return false; } } else { actions = flow->nic_attr->action; From patchwork Thu Mar 26 06:37:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261801 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=g4dtjgAI; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwL63SQhz9sRR for ; Thu, 26 Mar 2020 17:38:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727682AbgCZGig (ORCPT ); Thu, 26 Mar 2020 02:38:36 -0400 Received: from mail-eopbgr30065.outbound.protection.outlook.com ([40.107.3.65]:59543 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727655AbgCZGif (ORCPT ); Thu, 26 Mar 2020 02:38:35 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZsZBaUnpISry9eJkgQxWzMeJBUJ686LcoehMnP7TaIbDCX0HsbIFQlwqowzF9jYdPFGPWUylVvISo76HjLm1SdTd8Lr6+4b0YlA5yTuytmJdWf3hMUzBNVGNkXO4RsZ1SVdM0R7wtm5jim5TwkxWPrX1mzsm4PMO95HrU0jxWuJWpzLMXDYtD38WWpvJeMOAGdfLgas2lmfizqIlv2seVgFpRsWPrDV7wbIaOpYWlXFgXSjGwCaV13xx17NqpFTpXumgu+ob+TkYoVKrA6ldTGi0eWYt2/kx8uDuiUhNFk8Etn0zje50kp4OyRAMJ4mJIsEI/gLJwqFNUq95LUOTKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IyEqJHf7UM+siLE1EFs0jXf+F+O/MEHm6u8Te33hcNg=; b=Y/1cCQhYzGvn968q9YuDahy2MQ5nvf67K/eOYhkKk8CVwFLHYQww+VpZR2OOarmEKo3nYovseNRm7CifZe3WOXUnJAwaH3O/Rma5HQCyYQs44FV1IfKpX59b+BFTFKlUB2eJEDOMRNISqRqcJ/VW/9MZlxRmZbnIpEX6HKSmq8aTZD7HoJ4zPL2qDf0jaTy1C287zOjiVRJNY336yyKjt6jRqV+hrzKxTDC92nQMaiGU1a7L3QwYUWuzXrWMWYwrIs8HAw3bGb/g4vq5F7eC4fUIgijzyLcHZEV6GiCWk65E7FBFhXa6LsCCtOQjTut1lWJWVI3dZicR8JNnHGtOPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=IyEqJHf7UM+siLE1EFs0jXf+F+O/MEHm6u8Te33hcNg=; b=g4dtjgAIvEQcnQbBstnwrFIP7Kdoz4cXf/4DVQAh1sqTpPTMnkacw5lc4OaCp+Aqiii3GbLRIK0tB6OKLaLekI8uxWWxTnaYfoQtgqTT9iQkIhu73tk0MTD6D6rV49frbluoyC/ero4vHDfJpfjbsYdAC0C1SisIZSuJfwZbDAE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:33 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:33 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , wenxu , Saeed Mahameed Subject: [net-next 02/16] net/mlx5e: remove duplicated check chain_index in mlx5e_rep_setup_ft_cb Date: Wed, 25 Mar 2020 23:37:55 -0700 Message-Id: <20200326063809.139919-3-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:30 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7dddb1cc-afd1-49c4-86ac-08d7d1504d94 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2043; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(4744005)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1zeJqZGxFGQ0JHRoMURqSx7rerhZiphMekqyzZGE3BdHoh30y8jL3xFJOfTcPFPlD66KXmBjM+Sp+27XgKtGoAnylukc0RrX47o6Wkv8KLpseCHr/0+/OWo+WqODq+tb1ja79sGZ59lRZ/FEL5dNNZPmji7CAXVXv8QeonR2A/cvouoi2j5xKbKljjrd7fM2fvx7xFCNFl9I6Jiw7QfR/JzxusrZdETxHtAGbOXH4tzNlQRhOQdqhsWJ7aTo2LLesZ+1334QISlzNALx8t3GXAlOWIhV5jE5BlcNE/w1KS2NcCR5ho8rz6uqAhigjz6ic3jysIWe/wX/NH2u77M82h2DkEspSHPJ+mSQiH0XtgQqhHTmBGVXnQAnwTyQAgsXz4XnSZ27P6Apu/kMUXCmMnzZME7qC+N8F45zTjG0KdC0jCe5p4fNB6T6vWHfbMd5kGDkREq6LdjbEEGG2HXt5FndpySexU7gp2KYnQp31FdBzp6zDsq0Ip8jamCzD9sl X-MS-Exchange-AntiSpam-MessageData: KCDBEivSMS+5bEnRtuf5BM4AaUXg0dBD2djEET7k+HEqL++KY0z3MaL3xZa3D8stmaB5V2VUP3mS1nSPR7tFDsjxs9LahSQZ7vAcmjDvMIT878Sv67M6in5r/KYBWy0qMvj51/bagB0gbd0bX+nu5A== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7dddb1cc-afd1-49c4-86ac-08d7d1504d94 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:32.9820 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IzSt6+/FSZ1AywKqmST7KBnbKAOXj5U22gcLIdRkw4pWnDyQEB1GO/uSAqgJovQvgfqR/IbiTXQZOImzd/quLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: wenxu The function mlx5e_rep_setup_ft_cb check chain_index is zero twice. Signed-off-by: wenxu Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c index a33d15156ed5..d7fa89276ea3 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -1246,8 +1246,7 @@ static int mlx5e_rep_setup_ft_cb(enum tc_setup_type type, void *type_data, case TC_SETUP_CLSFLOWER: memcpy(&tmp, f, sizeof(*f)); - if (!mlx5_esw_chains_prios_supported(esw) || - tmp.common.chain_index) + if (!mlx5_esw_chains_prios_supported(esw)) return -EOPNOTSUPP; /* Re-use tc offload path by moving the ft flow to the From patchwork Thu Mar 26 06:37:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261803 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=gfWqFj79; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwL959hsz9sRR for ; Thu, 26 Mar 2020 17:38:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727717AbgCZGil (ORCPT ); Thu, 26 Mar 2020 02:38:41 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727683AbgCZGij (ORCPT ); Thu, 26 Mar 2020 02:38:39 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bQ+0P6hhsX91JyMqaYm3CcR+szqYFQQ+MwfxEdnT3f2h5IK0ZFBbo7tgz8nqJK0cpiFs8uqDbk/mKW09eZ47YJekn0rGyksA2vHwUvqfx7FcWI4gtMx0igX3AXupXkeulRsIvDb9pZGFiBrhjchWI0a1CoVBq8TlO0F88vwjX+rU9qLg8ZF4VUTZ0lchFPxKVM9SFus5glwFoKD7w/67ZvbdUhBNtMCF2mUxZTisbPiiEMnI3RDN1aNMZoStVvyuw//WLZbivHZAzbhsuSd6YSy4XTjLTnoiqYctTg0oW8SgLbDHxa5BphW9kB6e3A2bF8+cPSxcLdHxnTfpSiEVdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Xb57oRtK9EQghMGG+s/3k4PTZcyfPh5B9PBSecITJQg=; b=LPfTcVkX4gjYF+MZpVObrpwDScGXVA7ckH2pVJndof/sLI3uj/Qm2msCC5F/xWYZQdC3aPRybGAc9yXuEZuw7rhJuPruHFwroeH/HQfr1wL+FbI5Rk5dPSnqRMAPMtHU2XBowMatHDlMhZvEkKWAi1Dvc1nzLhfMspooulDgZRi+AdGAz7mEoK0SvrLrIf2O8CzyU72Pls6s0i7nVW8DK9wrW+u3L8MkbB6DFm7qDurJMt+XeJYVPRY0xR8FTz6M5PB55gn6kEUdqaWENYDFp7Vng1h3w2k4DK7sP1T75AHIvb5dycjgZTWNa3RhzTddWelyRFLeVKhH//uYP+vCXw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=Xb57oRtK9EQghMGG+s/3k4PTZcyfPh5B9PBSecITJQg=; b=gfWqFj797P50X07L+My/cpNOcglfdlJDlnfKWBNpSKHin/dDNZGwxummn9kUnuGzD09bSQXfBaBwSO9VGPocgwZO1m80tF0YylelFg8h2e78cm4ysLtMlXezTgW4oLpywi8sW2Je9e05DHw7RXvKEys6NPNJV2IacT/9RSJ2aRY= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:36 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:36 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Paul Blakey , Roi Dayan , Saeed Mahameed Subject: [net-next 03/16] net/mlx5: E-Switch, Enable restore table only if reg_c1 is supported Date: Wed, 25 Mar 2020 23:37:56 -0700 Message-Id: <20200326063809.139919-4-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:33 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 77a7033d-79ac-4243-0bbd-08d7d1504f28 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1002; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QpjO4C79mMKo0HUCP6HBQJG20q7/XwgovzXiAUxx8ED7R+xx/oY2jf3msqplImmrsgNAlzve+hAnCrdJVQl4noDV2qmwBpzQ0BADAJWSpNSQLASjay9fRWoZvU9cT1FvvV5J8dmoAVm0WRd1cA1E0YLFQAY+0D06S1XyI61ufj+T9VvXOTdgWJh6fXBosUS+IyReTGl6YBzBD7wVx6U9MRcwLcobz6cOfvIgdUFtUmsSk1YrD3ouvufbolAZnsQsuuxgjaJ6zmiec65cnYUrnmFOCePc/z6Zpg3pwn1u6mtzwYKzCxHUi2Bpt89UXDDxZMNcfcBT8lz7DobnQM14Wdyiwk6F6HHAfNn8q8q/AV8B/jvlFNoTlXaptpJfXoATrv//kX50UqEKDNpjpFA3RSP5aGMzLldtofWaJqCaDZYH1mSP7k2HZOgB+nNQawzq+Rp68vZ3X6YnBza3kzSU6VolhrOytoFPznuGQK8FA5g/cDkqSk7F96W9ic2hZVKd X-MS-Exchange-AntiSpam-MessageData: YwbQ2WEOFdf5RwYpokegKXHLKmhyuNG9SjrjpWCxRi60bkS6cycwRyB+Cno+qbNDpbiWTzNKBUdXkd3S1ET6Og5DSPoGB1GAqCJbETbd/EVL0ZZt3q8gEZ/mwwxCqYDwTfdqurSAul0IoCbtN+kyWg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 77a7033d-79ac-4243-0bbd-08d7d1504f28 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:36.0343 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PbkXmT4+HrsfZ0YC00cpI7ym392QZdW9YwHilnlY2avBBh/bs2FSVi1TFc/h5suyLnGt4nkA0iOhREEieM5M0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Paul Blakey Reg c0/c1 matching, rewrite of regs c0/c1, and copy header of regs c1,B is needed for the restore table to function, might not be supported by firmware, and creation of the restore table or the copy header will fail. Check reg_c1 loopback support, as firmware which supports this, should have all of the above. Fixes: 11b717d61526 ("net/mlx5: E-Switch, Get reg_c0 value on CQE") Signed-off-by: Paul Blakey Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed --- .../net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index 0b4b43ebae9a..cba95890f173 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -1069,6 +1069,9 @@ esw_add_restore_rule(struct mlx5_eswitch *esw, u32 tag) struct mlx5_flow_spec *spec; void *misc; + if (!mlx5_eswitch_reg_c1_loopback_supported(esw)) + return ERR_PTR(-EOPNOTSUPP); + spec = kzalloc(sizeof(*spec), GFP_KERNEL); if (!spec) return ERR_PTR(-ENOMEM); @@ -1477,6 +1480,9 @@ static void esw_destroy_restore_table(struct mlx5_eswitch *esw) { struct mlx5_esw_offload *offloads = &esw->offloads; + if (!mlx5_eswitch_reg_c1_loopback_supported(esw)) + return; + mlx5_modify_header_dealloc(esw->dev, offloads->restore_copy_hdr_id); mlx5_destroy_flow_group(offloads->restore_group); mlx5_destroy_flow_table(offloads->ft_offloads_restore); @@ -1496,6 +1502,9 @@ static int esw_create_restore_table(struct mlx5_eswitch *esw) u32 *flow_group_in; int err = 0; + if (!mlx5_eswitch_reg_c1_loopback_supported(esw)) + return 0; + ns = mlx5_get_flow_namespace(dev, MLX5_FLOW_NAMESPACE_OFFLOADS); if (!ns) { esw_warn(esw->dev, "Failed to get offloads flow namespace\n"); From patchwork Thu Mar 26 06:37:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261804 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=LfYn+DlD; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLF6XVsz9sQx for ; Thu, 26 Mar 2020 17:38:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727722AbgCZGip (ORCPT ); Thu, 26 Mar 2020 02:38:45 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727655AbgCZGil (ORCPT ); Thu, 26 Mar 2020 02:38:41 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eWgl5UPCGMrlluDASoT6b8LUjaUe2gA4nGdZ6Nlm5e+eQYSGPBldAmi/obhrmbmroPzpaElv6hPdGLnC+rfqgaDWaJXOggxrSvMFdEIimeH/nsdVFeLX2ShSyY+y1jz9E20Ggk+pkuiwJGVb5xgmAdvb1ARkfqNFbG7yayjoAPyGmnGIzy3o9YH8WvHZYc9lTsAY8Pee+W72KsT6bnoe8nvS54DL/X9FlILnOPvaR8/PGhJn2meYfqlD4NolS141StK+me/lKN8G1OvCOUhuXND04do6auqqrOhgTA05JWfcGkh0W1MOCV24KELkekDmZ9se7IP2pk6rZUZ04c0TpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7wyazpwIQrqQsv5B38NhGMZ6SYXAentlcpVcV7DR9Ec=; b=O6naARev97dsEWeaoq2X/pnvZgoOcaeGMn6rdyk1duIXAMRGEqQHwK/i17LEXlK9FUOj/9ESSv4qgPdFLn14BzTgnEEM2re76GKagNASPNn6g9AdCGv4OvcNEJVCpxFWLfgy+JNhcu7VbOeYkRjOYewpTjcb9AUAUi4oaegeeaLs/JeMQd9GltzOFJbKQyZMy8Ximpup34mSr8gCFtinD7MQ25L2j92DzVj3KmlcIMnXM5TP9H5UuPTt2y8ToI7I8qVq9foAAAKy0LxKhLo8KPIWd2jKbOxnm70SxY3wHxCZ3OHUW6QioBeH1Y00fpednb+hpMX1ztJGbRI/ASzJpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=7wyazpwIQrqQsv5B38NhGMZ6SYXAentlcpVcV7DR9Ec=; b=LfYn+DlDXJHIQqv8FVrCBgdTSzhEP3pgW0WHOVdi/Fx7rhpQ6jZQvn3qR6aGdka9osc590jGvMcRkpFOuZx06Bnczk+8KdkiskmtMUbGvW1UDgctlAsOFqXDG6z/J7QtmUzCtQ8O34EpkbfqWCoBRwmSG35i/IhEpiEeA7S86J4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:38 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:38 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Paul Blakey , Roi Dayan , Saeed Mahameed Subject: [net-next 04/16] net/mlx5: E-Switch, Enable chains only if regs loopback is enabled Date: Wed, 25 Mar 2020 23:37:57 -0700 Message-Id: <20200326063809.139919-5-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:36 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9ab3d43a-3087-4b5b-4116-08d7d1505113 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:546; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: P0e1p+llWTMPCGKNj/is+bZ40vKG4cczNSwCJVB0hihMgXoOzY9f+T+H/ZMO5sh8YTP1AucgGrWkgw635jVe78ywUyL8E00Ch00NTiMag8v+Ps3ATeIZxYEdawvrv8g9MhKxCHXbpT2JLlO69ljRYbxLyfkYymigm+XpDc0e25YfBZag7S2cue9wGeShdtP7Kc86Np1o9vIrXUmrwRbgpOMFiUh5R9YY1f1jlI/xnAPFDjlQi6zsVJX08JiaNt5jn2ffJBNkS8jG98EhxjQUnszV4ooR93nz8ahEN1ntU4+p4BtoyrVxjbmpxCywP7nqg0D13T9mxn6z7jin0EKzTwnGtamarBIKzeGxZVmZnpNSTZtEPmIinEYDuiKYNnA2CTDqB2dV57X/tgQVCvN7SWMGtvGCozqFpGbX1Qm1rteROxaJMn/rMaeQ4ZjCgpEqwcIuoD/P97ryuJ/dbSMR3XSuxTVb2hDuq5aPUmAw8FgzBUSnK/OsqALQNCqRiUMy X-MS-Exchange-AntiSpam-MessageData: ScvRTxdcDtRaXbYCTPFXUpan+ANkGGM62jkbV1w2TfzTVfr+N2mx8mp5zOWEL5qf6eAckkGaTLZGur3pspzovuhtp1fdNL0ziHwLbLnaudvU+vhEnOCo8Z+GEBx1TJ4h1iZcITSxYMZ05Yd6tuMEVg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ab3d43a-3087-4b5b-4116-08d7d1505113 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:38.6678 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oc5rlvhisHX7rZ962bDqkMBXzD/YAyLAhLsTWTmuZfFTUulZFnf3Q3eba7xNa7/tbQrLn6jptWAIL1uGnPIESA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Paul Blakey Register c0 loopback is needed to fully support chains and prios. Enable chains and prio only if loopback (of reg c1 which came together with c0), is enabled. To be able to check that, move enabling of loopback before eswitch chains init. Signed-off-by: Paul Blakey Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed --- .../mellanox/mlx5/core/eswitch_offloads.c | 11 +++--- .../mlx5/core/eswitch_offloads_chains.c | 35 +++++++++++-------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index cba95890f173..ca6ac3876a1f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -2351,14 +2351,15 @@ int esw_offloads_enable(struct mlx5_eswitch *esw) mutex_init(&esw->offloads.termtbl_mutex); mlx5_rdma_enable_roce(esw->dev); - err = esw_offloads_steering_init(esw); - if (err) - goto err_steering_init; err = esw_set_passing_vport_metadata(esw, true); if (err) goto err_vport_metadata; + err = esw_offloads_steering_init(esw); + if (err) + goto err_steering_init; + /* Representor will control the vport link state */ mlx5_esw_for_each_vf_vport(esw, i, vport, esw->esw_funcs.num_vfs) vport->info.link_state = MLX5_VPORT_ADMIN_STATE_DOWN; @@ -2380,9 +2381,9 @@ int esw_offloads_enable(struct mlx5_eswitch *esw) esw_offloads_unload_rep(esw, MLX5_VPORT_UPLINK); err_uplink: esw_set_passing_vport_metadata(esw, false); -err_vport_metadata: - esw_offloads_steering_cleanup(esw); err_steering_init: + esw_offloads_steering_cleanup(esw); +err_vport_metadata: mlx5_rdma_disable_roce(esw->dev); mutex_destroy(&esw->offloads.termtbl_mutex); return err; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c index 1e275a8441de..090e56c5414d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c @@ -280,7 +280,8 @@ create_fdb_chain_restore(struct fdb_chain *fdb_chain) u32 index; int err; - if (fdb_chain->chain == mlx5_esw_chains_get_ft_chain(esw)) + if (fdb_chain->chain == mlx5_esw_chains_get_ft_chain(esw) || + !mlx5_esw_chains_prios_supported(esw)) return 0; err = mapping_add(esw_chains_mapping(esw), &fdb_chain->chain, &index); @@ -335,6 +336,18 @@ create_fdb_chain_restore(struct fdb_chain *fdb_chain) return err; } +static void destroy_fdb_chain_restore(struct fdb_chain *fdb_chain) +{ + struct mlx5_eswitch *esw = fdb_chain->esw; + + if (!fdb_chain->miss_modify_hdr) + return; + + mlx5_del_flow_rules(fdb_chain->restore_rule); + mlx5_modify_header_dealloc(esw->dev, fdb_chain->miss_modify_hdr); + mapping_remove(esw_chains_mapping(esw), fdb_chain->id); +} + static struct fdb_chain * mlx5_esw_chains_create_fdb_chain(struct mlx5_eswitch *esw, u32 chain) { @@ -361,11 +374,7 @@ mlx5_esw_chains_create_fdb_chain(struct mlx5_eswitch *esw, u32 chain) return fdb_chain; err_insert: - if (fdb_chain->chain != mlx5_esw_chains_get_ft_chain(esw)) { - mlx5_del_flow_rules(fdb_chain->restore_rule); - mlx5_modify_header_dealloc(esw->dev, - fdb_chain->miss_modify_hdr); - } + destroy_fdb_chain_restore(fdb_chain); err_restore: kvfree(fdb_chain); return ERR_PTR(err); @@ -379,14 +388,7 @@ mlx5_esw_chains_destroy_fdb_chain(struct fdb_chain *fdb_chain) rhashtable_remove_fast(&esw_chains_ht(esw), &fdb_chain->node, chain_params); - if (fdb_chain->chain != mlx5_esw_chains_get_ft_chain(esw)) { - mlx5_del_flow_rules(fdb_chain->restore_rule); - mlx5_modify_header_dealloc(esw->dev, - fdb_chain->miss_modify_hdr); - - mapping_remove(esw_chains_mapping(esw), fdb_chain->id); - } - + destroy_fdb_chain_restore(fdb_chain); kvfree(fdb_chain); } @@ -423,7 +425,7 @@ mlx5_esw_chains_add_miss_rule(struct fdb_chain *fdb_chain, dest.ft = next_fdb; if (next_fdb == tc_end_fdb(esw) && - fdb_modify_header_fwd_to_table_supported(esw)) { + mlx5_esw_chains_prios_supported(esw)) { act.modify_hdr = fdb_chain->miss_modify_hdr; act.action |= MLX5_FLOW_CONTEXT_ACTION_MOD_HDR; } @@ -783,6 +785,9 @@ mlx5_esw_chains_init(struct mlx5_eswitch *esw) esw->offloads.encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE) { esw->fdb_table.flags &= ~ESW_FDB_CHAINS_AND_PRIOS_SUPPORTED; esw_warn(dev, "Tc chains and priorities offload aren't supported, update firmware if needed\n"); + } else if (!mlx5_eswitch_reg_c1_loopback_enabled(esw)) { + esw->fdb_table.flags &= ~ESW_FDB_CHAINS_AND_PRIOS_SUPPORTED; + esw_warn(dev, "Tc chains and priorities offload aren't supported\n"); } else if (!fdb_modify_header_fwd_to_table_supported(esw)) { /* Disabled when ttl workaround is needed, e.g * when ESWITCH_IPV4_TTL_MODIFY_ENABLE = true in mlxconfig From patchwork Thu Mar 26 06:37:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261805 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=bz+XlOTX; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLJ6fvsz9sQx for ; Thu, 26 Mar 2020 17:38:48 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727731AbgCZGis (ORCPT ); Thu, 26 Mar 2020 02:38:48 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727683AbgCZGir (ORCPT ); Thu, 26 Mar 2020 02:38:47 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UDbIs4iWQhLvQnelTiew/H4AV4XRaA1N8WqsWjWDUqxQw2iPtJmsJOHfuYQzADHw5VdmV3SnBzcXbDpUHcqB1Kua7ocORP3sgwIhczvTdg80THbpJRu+0ZfGzAIA15UMdLAfMdNRygE9pGs7HWUXp32VqQOEiQ536zVVTDtd4jsxxIuO8UHkpH0eI1olcTqrHSgGpaznQi0UyhEacA5xPi1kmXnvTNv4U/mKSRp2uGAfmzHoEyvsVN2nLa2tniXOPvW3YVHLq5R/5gFAFQ7SdSJBWIeyv4VTuYqWYsyyd/UaQmIZJDKWaHr3eQK2r6jMgDR36zS3ZNtMKP5hn072tw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/eYuAuQvb0z2T/l9iYZl06nFeeTjsjek/wezmh7KWjk=; b=dUzARtegJUOnfs1+Sej6R2icbKvr/f7/drcDnfIU84edTcv3Lhv0/slZlKOGcqeag8TPdsMO13Sy5v6IBRUbKanRNYGmEsFPX01m25BxYnlL0/UVha3M1LM9mOKpJCKwCIF7MvKAYThDjuJW/4fWZLjaqrSrRMKvyY6ostd0ytVlPwkvRBj41R+Oqb9IaMPx4Ex6v45UWuSY02tSsRiWBSK3Upw71e/YjdIg6oiih4GXDEui04hEF44Xr/YmAnOON+i1rM5i1Ko3OhZgEfVlWxj728nqOAQ1/vC6dZOyKnCHXhunRHeE9Sv1dhGy3rzJSeVHXqzs+1UBkBVG4iXPzQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=/eYuAuQvb0z2T/l9iYZl06nFeeTjsjek/wezmh7KWjk=; b=bz+XlOTXyjLhmoD/ENok9IPE88oCzvrDM4TPoZ3WKFwQ+6l9nma6DXDUwVovWyiYQPCQc0Rjv5Q+KV8mAqfkNc+rXk1f6xe3RsDMbfrJZvpmM0YxRXJs0Qlg/2gM8pukhsN4tr9qVBVk+oznDxJPSiQBEz3kyInAHFPwJ3ziwRE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:41 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:41 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Roi Dayan , Paul Blakey , Saeed Mahameed Subject: [net-next 05/16] net/mlx5: E-Switch, free flow_group_in after creating the restore table Date: Wed, 25 Mar 2020 23:37:58 -0700 Message-Id: <20200326063809.139919-6-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:39 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 03048f4b-2611-49c7-cc78-08d7d1505289 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:949; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(4744005)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qG6W4h9XJI6+wtj2S6zUJQCpd6E3ZwT+8i4rR69n3UbfHCjhGmo80Lft+mrD8kxJccjFrK5coj8HlyzekCXf817TqMrQrJNQdU//E66jNgfuAzLlq+JpYUYI13/76qh7v6etoxAttCYZNIHzWXgjHx2yBRJyqWzaqsMNJGkNm6EOHNAColKbiNQu3+HFejk5IQ5Usk3yWTW1jkBzSvj1W3ofMChR7i2ZkvjnNOwaNUSGg9tIq5oz2ZakTLljdg8V74rvGF5docnZUp43wdyQieXdOdRCoDKUUkcVHWTDeifnL4QE+Xk+sPRY6p/WTepydeEhgvZ+hYionMgIaqv20X3uuNGU+rqAFX6pofW0fSctPgXzEYo/LHA5fFiI+QrJw9HWAtOH6+BmsmxMR/4WC9OoCZ1CwjqMDblyzjTJRc8ff9BZcwXql7mT7xNqYVN1fzecRiKywgEpnvKmc0N+nEo40un5x92epyj9Ay3hRZP1Kwwg9x0Odp8iaoKsu+tJ X-MS-Exchange-AntiSpam-MessageData: v60jNelzRhBIkzDraaQ3ANh9zUT49BJFNJKm3v5v7uY0Zv550jPlpMGUh1CTZqPh9nhpxQgdsXaZU5kAz3IZD51NQuX1mdvbcZWa5ULk5AaF23x/lzS2TaAGwndMZoZVtrX7r4iz/uXf+qdQ7BVpiA== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03048f4b-2611-49c7-cc78-08d7d1505289 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:41.2153 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 30fXxYifbuvu7QXQUec3YztiNC8Nple9V0zT5eWtu0O9PLcaaylXgtGd1G5QCQ5VobynpxuM7yEQFWfF1BEVBA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Roi Dayan We allocate a temporary memory but forget to free it. Fixes: 11b717d61526 ("net/mlx5: E-Switch, Get reg_c0 value on CQE") Signed-off-by: Roi Dayan Reviewed-by: Paul Blakey Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index ca6ac3876a1f..088fb51123e2 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -1566,6 +1566,8 @@ static int esw_create_restore_table(struct mlx5_eswitch *esw) esw->offloads.restore_group = g; esw->offloads.restore_copy_hdr_id = mod_hdr; + kvfree(flow_group_in); + return 0; err_mod_hdr: From patchwork Thu Mar 26 06:37:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261806 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=K3ZYTeLZ; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLM0r65z9sQx for ; Thu, 26 Mar 2020 17:38:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727740AbgCZGiu (ORCPT ); Thu, 26 Mar 2020 02:38:50 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727655AbgCZGit (ORCPT ); Thu, 26 Mar 2020 02:38:49 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TjqlS+nBu8OjbhA4eJmfa8AB/V6nU8MBZzXHSXkUA6fxqTyWNklrJ90fYvd8Ut/Ka99DV5FXI82CGI4+QTOt0pbrgEdnmXgQ1X86f5SMlWk/KNdxvnZq3E+mmEq+mJP0NPJe+DE5ra2soS5nRbE4BPBrSoKoEW5bto7xazFz0qa4wr1QINQPa+h1WE/Rtba7lQs4mTTaiHBVOLfkXEywiN9g1vPnkgfGU/zBCX6dz2gZBx6x1lHZKfrzhy8qQ4FvfcntlLjD5npuia8+05bObZ1HMotXqRyYpUVwTn0y3OM4DN5WPuq6Se0ARRPWMWBmqoaA2RFB3ryfQHIAzo7XXQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=D/SYYRpbZKiVWfPSrLRSL3s242wA5Zfib/VxbCxspUw=; b=JxZMmOE1qzQQQ65IujDpezaruVjjt69eTGpWUSZKyZifZ7LG5AZ3dVjDyBmhqLDNo2EHv9E8CQYda5r2Z6VGVqNFs7yY2XDJwSVRo6pwtTRWAfyfJj73NKwVQ2wLz3Vvw8t+CJLNupeEeNB4Fk6dyrcP9XqGincot6wcMYOTfVungdHuFuJfxjdFfsRxgOKRrDi/SUr6btI6XfrfVX5Xvv2YxJVKKD3YoyA2TpOnq0m/sD//AgiZ11hLTo3AOaRzEw04AlaWlpTHqZ8K3ysI/V34SeM232/y7aQ2lI5QLb2WPqNktrynYL6KuyUsqwY+OZFPflkcZ8CUT1VUJI92iQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=D/SYYRpbZKiVWfPSrLRSL3s242wA5Zfib/VxbCxspUw=; b=K3ZYTeLZFEWt5PgC4zQj4lgLTYAI2mG1bYoW9wNAy68+DMtxR1AfDZMN/kIM6VSTMxrNbRxdvuZmofqYt2IuBz3V4NMTSRNsbUqnPu5HX0D4A2smDDUURSeUwHLT10GaLe8tL758sHJPAGlizKzzkFCYjXtaUj2Ks3FdYf0nnDU= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:43 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:43 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Roi Dayan , Paul Blakey , Saeed Mahameed Subject: [net-next 06/16] net/mlx5: E-Switch, Use correct type for chain, prio and level values Date: Wed, 25 Mar 2020 23:37:59 -0700 Message-Id: <20200326063809.139919-7-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:41 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 9ca10a8e-fada-4f8c-1ba9-08d7d15053f8 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:431; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: e/Stm3FytzkfmnoE97NIaws8mlHCaXdcZAeVuiTIwWL0CmLbpo0rnnE6TwrO4ppoFcXersmX67Ti60owM/XaFE1hLWUWvj+btzQemyHtLa+zoRHGCFRN859I6GpmewZODiOHG9T3ab56oVZrSTdh2mDM/M/zoWasl9890prieN9BThPEAsWIim3OUxz65ow/7r6wAnV6gSCVcfLHXS60iDq6VWmDT3RIi9NvDw+8/juqUPlEDpseFAYkzFfRtbXCtLXCLvSJkivv2pEek+O/jzRcknKlz2Mwn5F9EDLEqn2r49lBem+mp+dAXWRGPDI5ljyakZG5bpQHe+he1Tnf1MsY3SjGAbSdkk1vJMj9d2OnRy5WMhMSxpmEJk8aosM/TVrRS5RCKPfw1wCXn3lR1C/2TaCo7ia+nLK6Lds8MFac+UCCq9QfGRSoup2j6kahqfD0E+ZUJi4vw+TGANorKb3d9qNkmVclo8i5uppp9w/997Tgjmu7+xuDKfDzoMni X-MS-Exchange-AntiSpam-MessageData: BnB/RQuU87p1h8XHEe3g91z6F2syOKMKcE1Cj80V6Qfwuz/hWbLeoLKS3jfWBECOeNO5zc0mcjpvYZpR25mb2f6qAHnqlEgJdAMUTQiVRmpmUY73d7lXbCVVDyVGlxbEDh2YQyiC+G1HW4onap1KhA== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ca10a8e-fada-4f8c-1ba9-08d7d15053f8 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:43.6400 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Z3cvEFHyCLaXpz+Bljmys6WL07eL3rIopu5XOqtQeKQfFieVQk93M+gPBy+mWwD76r0mPlP7YC2KNuUtZZCdrw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Roi Dayan The correct type is u32. Fixes: d18296ffd9cc ("net/mlx5: E-Switch, Introduce global tables") Signed-off-by: Roi Dayan Reviewed-by: Paul Blakey Signed-off-by: Saeed Mahameed --- .../net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c index 090e56c5414d..184cea62254f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_chains.c @@ -730,7 +730,8 @@ mlx5_esw_chains_get_tc_end_ft(struct mlx5_eswitch *esw) struct mlx5_flow_table * mlx5_esw_chains_create_global_table(struct mlx5_eswitch *esw) { - int chain, prio, level, err; + u32 chain, prio, level; + int err; if (!fdb_ignore_flow_level_supported(esw)) { err = -EOPNOTSUPP; From patchwork Thu Mar 26 06:38:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261807 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=cv7rMk5P; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLP52DXz9sQx for ; Thu, 26 Mar 2020 17:38:53 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727750AbgCZGiw (ORCPT ); Thu, 26 Mar 2020 02:38:52 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727683AbgCZGiw (ORCPT ); Thu, 26 Mar 2020 02:38:52 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jwq/twi4qrixYF4IxFhCjlJODAsYnYoCFj+DJpSq3kAbWGhG46V2uDGeeXNFAczwKYRwuz2MuUu4nIjPhK6bDcSQlky//oMGMA8Fo6k0rzJhNdQI/sIUJ3P6N2uWqqG5VPMfIJgS42ZmzVV5vZ4MzOvWvj7T4WqZfhkqyLLwSWeYXp5Va+QJwU9Xbvn+JSsiPlSBPboiBFiSbe7s3yOq/OVaV3Gea5bMbZf+BXa09vZdCcgszli01F525/CCbXfiKV/ZSTpJLwz61RQKA0UzHVp+bxTQqLUJD4QxKsV57dVOEP4apVPZMfayP1Mi3Kco+HvO3vTK+e+0Ey54VMohHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=s1DzGvJlqwYty7zAfcKImXZ6bAd5YmZIf2sKvFJ0nyc=; b=S5vv+oBc0+xBF9VwdA20M0n9a65F566oQ/7VstOrFvzgy6C5D+AiZ8tt+44nv5zrzxv1+H/vW/11BhcZ5kzTzNPT6vKBToCMxp6/YqzQ9hzb0uw2p9aSfadCwdb5pcVd/WrOPAs8JAkh8W1Nx/dhdC9hfu7LGRmknAq8VbV1Nvyvj1qrS1snpHajurYaPdCOf63TCguXFhfJjWKWWOLhQOALBRGTIdUqWDeYEnJcHOTswA1G3hPIW2rNtEy5Dq24P0R9zqBYmwX8PQ/RWKoVNWG/gdV2gVLk2l4f2SQU1Adq2L8Ki4qJM+fWneOkoFOJGctQl+0n15u384lWPMlXYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=s1DzGvJlqwYty7zAfcKImXZ6bAd5YmZIf2sKvFJ0nyc=; b=cv7rMk5PeM3YzBdCzQsKrZvj6s55JabirFPVza3vLAfTepdRHlXbKbG6z6RoQ8plprWwkrujpMx+bZjH416XL+xKhmWwW6Gy7h7UGGpueFJTJXWAF1hz0spvdU5IINKsQIr+RMIwmQXtYMXZBRBFKTaJaWmfY4o3gwcnPmhxkBo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:46 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:46 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Eli Cohen , Mark Bloch , Maor Gottlieb , Saeed Mahameed Subject: [net-next 07/16] net/mlx5: Simplify matching group searches Date: Wed, 25 Mar 2020 23:38:00 -0700 Message-Id: <20200326063809.139919-8-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:44 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 56dd245d-6aa0-42bd-7181-08d7d15055c3 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2657; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gQKlx+/S80xgci0PcNRxj+Vug/GcF9/SZGSIDNIrP9vvWHY2Zk6eJAt7FUNrYzJ2vi6YZnoOvwN1QoqjbUOs1GA6gP86PWefn6ofgS9rmAL7H38cdLvxqoVLzbXNWC6FQNzpiHZkn93YGW00iaTs5aJvM3qg+Nh3HyGTvJNHtu51VHF9AhUhoZFyZU+rLNPZe2w4wVh75xPGRMPnN3fqDVOVhYpYZPsSG6B+24MnD0QUYPTj/v6dNY5FMRhRGs8puFDBS4NJ0nk1PRzLfcdH6SWMABiPGAJRzCkWZB2GxCkBXbckxCkp9513Tgsc6WCZi6d5XEeZgP3bC+uszpV/SymqHtWd++hLcwtXwHg0CGfKoNSh2cWbDtvttcGbArElJ4BnfNruTwoiA7mGRAuDC19o/J8cIcWV+Qs6EolrByuzm4//5iT2X39AmNSoHJtzr5xcXtOwR8NONoNmCOgQKhbvteDmIuu1NYAPlFS3mZE8zQwfUtBf94w2D2qNRI78 X-MS-Exchange-AntiSpam-MessageData: ldjBm2whCM5ulpaBvS6zSEoBlvioVWikrlVhB5U3mQ6TQw2sFfz7+7bthwPwnwfXhE0QwlOd2MCG+ClTFFftltDA5BZIlQoXnRbZzVKP1KtgkH4/6PSodvcUydtVr6AVYUWjNVM7Rapwdlq8KEbkaw== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56dd245d-6aa0-42bd-7181-08d7d15055c3 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:46.4714 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oHsL+QpbuE65mAT6pIpti+O+N2d6JAD1uFuicFvuFvsM98sg++TLS9VaOncv4RS/fHyVzmplZbnnMbOnBijUfQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Eli Cohen Instead of using two different structs for searching groups with the same match, use a single struct and thus simplify the code, make it more readable and smaller size which means less code cache misses. text data bss dec hex before: 35524 2744 0 38268 957c after: 35038 2744 0 37782 9396 When testing add 70000 rules, delete all the rules, and repeat three times taking the average, we get (time in seconds): Before the change: insert 16.80, delete 11.02 After the change: insert 16.55, delete 10.95 Signed-off-by: Eli Cohen Reviewed-by: Mark Bloch Reviewed-by: Maor Gottlieb Signed-off-by: Saeed Mahameed --- .../net/ethernet/mellanox/mlx5/core/fs_core.c | 41 +++++-------------- 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c index c93bd55fab06..a9ec40ca7893 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -1577,28 +1577,19 @@ struct match_list { struct mlx5_flow_group *g; }; -struct match_list_head { - struct list_head list; - struct match_list first; -}; - -static void free_match_list(struct match_list_head *head, bool ft_locked) +static void free_match_list(struct match_list *head, bool ft_locked) { - if (!list_empty(&head->list)) { - struct match_list *iter, *match_tmp; + struct match_list *iter, *match_tmp; - list_del(&head->first.list); - tree_put_node(&head->first.g->node, ft_locked); - list_for_each_entry_safe(iter, match_tmp, &head->list, - list) { - tree_put_node(&iter->g->node, ft_locked); - list_del(&iter->list); - kfree(iter); - } + list_for_each_entry_safe(iter, match_tmp, &head->list, + list) { + tree_put_node(&iter->g->node, ft_locked); + list_del(&iter->list); + kfree(iter); } } -static int build_match_list(struct match_list_head *match_head, +static int build_match_list(struct match_list *match_head, struct mlx5_flow_table *ft, const struct mlx5_flow_spec *spec, bool ft_locked) @@ -1615,14 +1606,8 @@ static int build_match_list(struct match_list_head *match_head, rhl_for_each_entry_rcu(g, tmp, list, hash) { struct match_list *curr_match; - if (likely(list_empty(&match_head->list))) { - if (!tree_get_node(&g->node)) - continue; - match_head->first.g = g; - list_add_tail(&match_head->first.list, - &match_head->list); + if (unlikely(!tree_get_node(&g->node))) continue; - } curr_match = kmalloc(sizeof(*curr_match), GFP_ATOMIC); if (!curr_match) { @@ -1630,10 +1615,6 @@ static int build_match_list(struct match_list_head *match_head, err = -ENOMEM; goto out; } - if (!tree_get_node(&g->node)) { - kfree(curr_match); - continue; - } curr_match->g = g; list_add_tail(&curr_match->list, &match_head->list); } @@ -1785,9 +1766,9 @@ _mlx5_add_flow_rules(struct mlx5_flow_table *ft, { struct mlx5_flow_steering *steering = get_steering(&ft->node); - struct mlx5_flow_group *g; struct mlx5_flow_handle *rule; - struct match_list_head match_head; + struct match_list match_head; + struct mlx5_flow_group *g; bool take_write = false; struct fs_fte *fte; int version; From patchwork Thu Mar 26 06:38:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261808 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=er5zuN0z; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLS4kSWz9sQx for ; Thu, 26 Mar 2020 17:38:56 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727766AbgCZGiz (ORCPT ); Thu, 26 Mar 2020 02:38:55 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727742AbgCZGiz (ORCPT ); Thu, 26 Mar 2020 02:38:55 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TvZJv2PgMqeS4PGEmAVxUbLQwgy3XAZBnyql98VP3goQQdM5677Dx25VHg6ui4gETgw4ibAmOdHF2wiTO7XYmnaVlh++861c19nhIs4uuAcekLeYtSu2XESfE4IazZAojEKBeK5q8/bEdNC2mmZMrVXiof4qPy9mXKKGdvzgWUKJpSEFUFJcUefbImR5ZX8yhXuzU1Etwcrk7smNOvFu3G9ai4AQ3cdjyI75Ur2iIl0RlgArMMQVg5W9KJIsx27ZrsjzXTtLsLnDAHolb9LUQNifostKCZjX5B1vrSrHl12tPnUOOo/RkT4iMBK5As9GgAO95caalMoiOlNOcDQMZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g1fqq/2H/bCZ1gNRxC03lQv7ZDJ4YXXF7j5C3/ku+4I=; b=YzABja6TpIRUaMOvQWbvgKYQ1hkaSoBqzg13hWQK7buDzzTZwncsxsOnueqoXvcYQLCCyKiMWoJsHdiw/BcFHdg7BVYKT8pky9ybid77cFG86NMsXwIWcyTD3/jl50Qm530a9K1bCkQXUKwlIVijQoqS9uWjwGzeotPWzgd6FowX+YjMYwcK7w+28CriQGBnbUl8eP95hvNDMcVWeVHm2w5kMlOcUo4BFKUztFK385sw4EOys6/B+yD3NSxGd2CdK1LstO28ufnQUVR+4GrzyWubl6hHWjiVn5Y+zh23Z167bBrkfz0pQcsxLoe6oXOQLJONmbOHDbK1UauersCRtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=g1fqq/2H/bCZ1gNRxC03lQv7ZDJ4YXXF7j5C3/ku+4I=; b=er5zuN0z/8KDojjf89H0ZWSw7E16opa0Kat7H7fXnb2CHGL829kwRxjP6bAczoXae/ozEBT5/8Jr0SFoze3iGKWeW9pmjzRjR3Y+9FLCjFG1q0IG1YBjXM4ZEJL9UriWDVqg8UfRg7JslSbfDq29QVtk0+hV4vYpscn7RVwhl4M= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:49 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:49 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Eli Cohen , Mark Bloch , Saeed Mahameed Subject: [net-next 08/16] net/mlx5: Fix group version management Date: Wed, 25 Mar 2020 23:38:01 -0700 Message-Id: <20200326063809.139919-9-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:46 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1a2f4f4e-049a-4968-31ef-08d7d150572b X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:3173; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 42Zmeu0ApOHM6I5knN5tC0tkOUwxQXgHfjwcmbbk5s0CAL9ai9gr7Pq7/mtTOStt73j+4/l3HaItEDPGo6txFbcA5nBvmPtNXgsjMuVfzOWt+xeQyLxnugDhTuka7m5YWEG7qCgZJHoUli+KaZKlGeEHlMy7vddC33Ct3IK6QXUbdtqfiqvTT0v4acPpjO1p1MbU/Myl9EF926YRosIkW17yWYM468JThlCGfcuhFzsrHj8kEps31iDiouH2ZrXEoGbcioT9oF4ATb8+iM3H1xk2RdyUUgPt1fzUYYIRA7w/wmk+3tbu4VziiIzs47H7IuIOAKJ5nq9afuXNkPUU1k7kd6MDhbWM0vZi1aRayDzJUFHmYm1UE+LwGPnd5xlZ1EDv+pWS9NJGDitFz+1IupjMlVwLupfAOZPkoAbIoJetAkPEMpb+IQ8sY3k6CLC2Nnu2KYRRP763CV2tUM81LlbnTgE+O9ypx+NhOdrtTUwWg2GtlL2KXkkig0abGnDe X-MS-Exchange-AntiSpam-MessageData: pk7XKPzJwcsxf8sxUnFDs5R7EsO3SJM6RFmigxl0QC23934fsuKkzrXI6/FXhRZr86aIjXpyBIiIjNBdCW0EBsOjvNOlULbKn3NnnQjJwD9NLFrlIpxHLfQQQM4JS2jKrrXt2MniYBkIQlExCSAoyw== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a2f4f4e-049a-4968-31ef-08d7d150572b X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:49.6586 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F2YjvfEnj/SBmTBh3544HEvfcyt7TCBZNvMeeo2vqPPa9UF3LA59aBGiKmPETXKWzURcdIYkDL63RHorvrfj9w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Eli Cohen When adding a rule to a flow group we need increment the version of the group. Current code fails to do that and as a result, when trying to add a rule, we will fail to discover a case where an FTE with the same match value was added while we scanned the groups of the same match criteria, thus we may try to add an FTE that was already added. Signed-off-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c index a9ec40ca7893..751dd5869485 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -1323,6 +1323,7 @@ add_rule_fte(struct fs_fte *fte, fte->node.active = true; fte->status |= FS_FTE_STATUS_EXISTING; atomic_inc(&fte->node.version); + atomic_inc(&fg->node.version); out: return handle; From patchwork Thu Mar 26 06:38:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261809 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=e6IpIS7p; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLW3nH8z9sQx for ; Thu, 26 Mar 2020 17:38:59 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727772AbgCZGi6 (ORCPT ); Thu, 26 Mar 2020 02:38:58 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727755AbgCZGi6 (ORCPT ); Thu, 26 Mar 2020 02:38:58 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QGmx2F0BAD1oGa77XEDom1BS5fJcG3nG5/hS+n6NuAxHElkKFo0ilP0SZSbj5qiz6U0iI70dTQnhvtrix5NcS3x2Cz0N6apAiPkTbz+siGhLnfbI5LATjuuY7v7ezUkKQqtFqUb6GtPS/WjZTfGCGQbxxAJkqQVXgvd3IFr/xixVRSwG9Jq0zMhOegskd1TiQh+msaUcdEQAOTC4XATRh0PZe7egm0g5dgtCr/RFPTHUlWZjeMDO1q9EZZxuDXFiUd4m14DKrCUQvDwx2ey843QYuCgt+tmuTO6hQIy9qyD5Bqb6SbpZCzDM27oFsI6t1SG6+Hid+vawoy7kGH57Gg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7/t8zyRfn0z4fSZEbU7qenmLQtmvbmwI7HnBA93hVdE=; b=kcMAn6tqrQYsna7wcXaTXHewbEMbjaaSKKw120kot3oyD8FFl74CEPGfY7Hjtz8NiIUxoN3sX8B92mnH+ttRtgABmRCmHVzyazLS3DoAwtb6nRqc+BGkD/reV53ujoPqfQXKI7xZowdQKdzBFPZxPeUSjCR2MlY5YB4WVHUGvtZRt572xDSQ8GK+kN76n+nV8FDCk+86DqIGpVUlXlys3Ku4tTWmKeaykP4HmAVuoZVzcKVB0NLWupegSco4bqpT8fX3tVXN0W3mHDk7sf1ZU0kNpraoIYyCXtKNvOoukZDDQ/SWFJuMqErm7ycY96zaHphbRczrjXJ1v1YvU0TzCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=7/t8zyRfn0z4fSZEbU7qenmLQtmvbmwI7HnBA93hVdE=; b=e6IpIS7pM50hTsJK+r80NnSVho8Wc/HzJyT3jvwHVgeTl0v5o+mAzfRVvgD8AICCSSinSNsJDLGJF+T/oLDSayJcpDYNoz5NSFcgac3TSrFxQbddPBRtDpLIE+YCk4XeP0W4qRls16n2FwkDWcviC+HrIRdnApsgsdKYeduMRlM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:52 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:52 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Eli Cohen , Mark Bloch , Saeed Mahameed Subject: [net-next 09/16] net/mlx5: Avoid incrementing FTE version Date: Wed, 25 Mar 2020 23:38:02 -0700 Message-Id: <20200326063809.139919-10-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:50 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 4faf7ac8-c7f6-4090-2b09-08d7d150590e X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2733; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(4744005)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lf36EPQv6E5BS/2GcNZpXvpiyp8HzCIEKEk58EFfDJu/u12qBb10visjSxxiLU/gS8uya5bPIfq3sZebObU3BgWt0L71wyumKjTT2UKtnve3myMKUhPX4BhbgV26xFS/ozVMKFhNqFi6gkQCEBYHE16o5tLz6uCoBtQRt3pkrollP7efZA6in3ng2jTZpJuHxRY1LAXHCeSJh7il2TOzzz6QcIk7Mdmu3ewhnZxDTOK4UW/lKinXk87/ILvru9r06BK0AVs5BSbOBEdj3EEudn5pBz+YAlANNTCa21EF+VDOI8NVlcwRoRkLinnNdHFIq8rj2farliwZAwMjz1L2I5MVX04+wwH5cH/zmZbNozVT3fFCuqoGgbzIyLV2l18Q3a9j7SCw0ZeAXskCObCLSUcjFYqEyITuufgTTzpFUtHUHUvLI7cLz6yr+1a7dTjLixofGZkZ781NRqrw0etsGl3XcWTWZ/wsTbqXWbfbRALLhnLACvos5DI+ewNbRHpk X-MS-Exchange-AntiSpam-MessageData: OfXmm39lCurGNlGDNZCdmin/QhE/f9NoKXnhtvdTeg+7zgbAGJTIyQ16huKWVvxvnOfXBscKKgtkqYXYD0Ny3EslQ7/1k5gcPBU65tY1J4GKFFSc2dA6Tq1Xf+DQDBd2OQOsdzSwf79HdvRHoAl15w== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4faf7ac8-c7f6-4090-2b09-08d7d150590e X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:52.2731 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: w+wuA2CubxdNgZexqInTG7H67fqC82TEeyBfWN02F9e94CZ9oPFd1KCS4QJc9NnO7pbVX1IAWVP9IMsd+7LWxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Eli Cohen FTE version is not used anywhere in the code so avoid incrementing it. Signed-off-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c index 751dd5869485..44ed42e0e1c7 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -1322,7 +1322,6 @@ add_rule_fte(struct fs_fte *fte, fte->node.active = true; fte->status |= FS_FTE_STATUS_EXISTING; - atomic_inc(&fte->node.version); atomic_inc(&fg->node.version); out: From patchwork Thu Mar 26 06:38:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261810 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=lOCQrji3; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLZ2Xmwz9sRR for ; Thu, 26 Mar 2020 17:39:02 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727781AbgCZGjB (ORCPT ); Thu, 26 Mar 2020 02:39:01 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727768AbgCZGjB (ORCPT ); Thu, 26 Mar 2020 02:39:01 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=j0i/BZnwl6mDkmD9l2eeWOtloLfWDhcT63I36IGRt13Gi+ww8TPgClq/8zsEY/sMcDSQLhw3fXgYdNQSilVAPXA6MIYfrUme/wFiWlTHywpgLMb+q9RFeZu3I5q4WdOUlGJve1ZB/XHOH+B2LH0WhEUEAmQPZgMgD2/xmRf5WP2mqC9qxSTduBzy0s3v2p6n/UaH6/TzaPdDUIYdJ99B2fX563/2TxK35YlbNdmF61LYVfUHBMb6PKmpNV9EHPZLT5vtJ1gszOWUnE4LQaGvUg9X9wi1uBVZmblNg8eXUdF+w9Meo+Vf2QrFsWRpdGxMPabe1/12ies5Jko1d5UuBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XoT2+Eep8s7QsLv5tAPd0cuIlkzh6BmVOggcAhyZj6Q=; b=BGWWm375Vx7QwAN96enYENi0ExEdeiy9sZcBGOl54JKEvkF7vK8s85WQcoZTGvdObrny/NGxd+phiDiQpziSxuG6lJhJTpKUe+HJF4WC1yhExZj14gnqMH8ythXgWD4RCZYngoQWhtqjH4y3LbQB+NQQMU0gGfYjfHH4MSh0PdU9NXGLweYprUDaPdyzR5AXz4iMvoMWMe9IPXcV4Q0fx7ofEdcu4/laeQ4oEbI0OkWkWrYRuqlP1dZANDeUyYJHPMSh5AHXZbbspBLHZaxH6D8vePHYbQlI8qUwHKiwil5P0Phwd+/8N5t8/6IUH9bWwcLixt3DBx1VOV32HCb9EA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=XoT2+Eep8s7QsLv5tAPd0cuIlkzh6BmVOggcAhyZj6Q=; b=lOCQrji34ErkgVviGK6d9h8O6X8ok/4d5H5crd9Cn3Dj7RYthX30W7mmc/VbmefzkgJa3jMDlVVxNZNOoVBKqaByQ0Gg3UR3OC01NjjtjKPMsF9fG8D4+nVUDgZAn0X8sgokD/GjLkI82kvGczE9+r3/nBQKo/RS0i366rKMqII= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:54 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:54 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Eli Cohen , Mark Bloch , Saeed Mahameed Subject: [net-next 10/16] net/mlx5: Avoid group version scan when not necessary Date: Wed, 25 Mar 2020 23:38:03 -0700 Message-Id: <20200326063809.139919-11-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:52 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ff53bcbc-51ae-4019-ff59-08d7d1505a8f X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7691; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WXstA+2lA0jAPblWP1I7OGHrLhdTUz8VVbIBc79Ny3rfAHd6QUEGER9C/a3BHpo/BtRyWHe91AMI+RYNL8+Q9uqmAoazKrtM/71fTsFnwJEJLM/F/2NhOsQRULsZfnfNb7OnUV6mFT7HeXRTv4exXc1Vgnb41hQnP8DIZjJ36qWpzRyXuPQxTIT2jVW2sPx1RSV+5Tm/SFlBqI6Dl1po75A504yKMaS0IUwtxdQDiFFpSg/XQlSVAeqqUdo98bDR0jU8vYFwXYvTPklWhxj/J2VZUim4KaLpjM2kb7JsH1Xv9+QW4AaNgzT5hvOCvVhf0jWvO4mlqgjRJorrJ5dqWtOwQj0ZhGSPDiLIPvr2XM3Zm1l2Ig7lUosZ18tASRjtj2VqgT2aEtd6OWF0jigh0xqjHeKpnQYvdCFpbKb/AijOL6YsO4I7cX1HztjQnq2gL/vb6oFD0gusTQJeWQK/JotvioQpERyPHN4XPtRvQpHtVjZKkfedagl8aW8IdVGr X-MS-Exchange-AntiSpam-MessageData: gHGi2UybrIHve4Q2CJ/9XbSvbY6ntDtArUoaKjr5W4HsWnCPQYyGzo/29c96cPRr6yPMEz7fp8H7tT/OWbL8rZ7eH/oUBBJ1BGASeBXwAgKnOgm1DWfVwx5wDFwM7GXbXBLAXXtYThHX4eKEWkUlFA== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ff53bcbc-51ae-4019-ff59-08d7d1505a8f X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:54.5208 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8X9UbEATIXsyeRA/dYLhdGcJ/yLUErrakBdpgsAveaol5kDuQP0P+0b4x41XSjQ6+ne//c30aD6nS5BM1TyVUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Eli Cohen Group version is used when modifying a rule is allowed (FLOW_ACT_NO_APPEND is clear) to detect a case where the rule was found but while the groups where unlocked a new FTE was added. In this case, the added FTE could be one with identical match value so we need to attempt again with group lock held. Change the code so version is retrieved only when FLOW_ACT_NO_APPEND is cleared. As result, later compare can also be avoided if FLOW_ACT_NO_APPEND is cleared. Also improve comments text. Signed-off-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Saeed Mahameed --- .../net/ethernet/mellanox/mlx5/core/fs_core.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c index 44ed42e0e1c7..62ce2b9417ab 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_core.c @@ -1680,7 +1680,7 @@ try_add_to_existing_fg(struct mlx5_flow_table *ft, struct match_list *iter; bool take_write = false; struct fs_fte *fte; - u64 version; + u64 version = 0; int err; fte = alloc_fte(ft, spec, flow_act); @@ -1688,10 +1688,12 @@ try_add_to_existing_fg(struct mlx5_flow_table *ft, return ERR_PTR(-ENOMEM); search_again_locked: - version = matched_fgs_get_version(match_head); if (flow_act->flags & FLOW_ACT_NO_APPEND) goto skip_search; - /* Try to find a fg that already contains a matching fte */ + version = matched_fgs_get_version(match_head); + /* Try to find an fte with identical match value and attempt update its + * action. + */ list_for_each_entry(iter, match_head, list) { struct fs_fte *fte_tmp; @@ -1719,10 +1721,12 @@ try_add_to_existing_fg(struct mlx5_flow_table *ft, goto out; } - /* Check the fgs version, for case the new FTE with the - * same values was added while the fgs weren't locked + /* Check the fgs version. If version have changed it could be that an + * FTE with the same match value was added while the fgs weren't + * locked. */ - if (version != matched_fgs_get_version(match_head)) { + if (!(flow_act->flags & FLOW_ACT_NO_APPEND) && + version != matched_fgs_get_version(match_head)) { take_write = true; goto search_again_locked; } From patchwork Thu Mar 26 06:38:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261811 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=ZCeEhecE; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLc3N1Rz9sRR for ; Thu, 26 Mar 2020 17:39:04 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727796AbgCZGjD (ORCPT ); Thu, 26 Mar 2020 02:39:03 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727768AbgCZGjD (ORCPT ); Thu, 26 Mar 2020 02:39:03 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WyT/MxNIv9fpztOnySQw5ng4WCT50m6xrN81KoBdOskmDZucRwxj9Pqt7gxu0p7RiPaWhHVASbVIlJWL7/9zTClcUYpVw3DfPGWz/kG3Y4flm/bkF7okR2EqI7A8N71hlYfYPj8v31j4C/w7JOp7+mRC7BDj7c1kA5/ZDyaQA7GyzfyGYx++EMg2Ikxa6ZX0t1CUed8J1R0zkd8jUFF9WPbp8y/L87cPQCsajmer7o1GkcxSJkzF1o4rrPxBvCNA7kUGLdB73Lp7BRj4TgfbNiqkwKl9QN+2MhCxDyzgD/yYB+2VVUU5h/GOjcfqWHtL0xTxVuTPIvX9ZPfx2pUMmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3MqRGQeZ7PJ+rNcDhPlyWzhr+lwZJFqJr5ZrBptvgT8=; b=gqDyjZTbASQJAVO5IH3n5II0QrLoQVoSTFerHyLYgTZYCwsbkADVoJcYxot7KOStq4KQpyqfXJO+2MXpSaZ/JEkYal5/74JO7o5QFbU5pRNHDMks+UQ/olKuzwXN1jf5ZAkzvMcX2TVSB18fj8pwM+ITwjuCDj31vRyE/jlHtOdpDvOqIuOJawcdPbBRg5+v2gUhNkbUpk2DMplZPdp2tyHC9nYGS/N2De4WYxDOUf/bUTJr6LEcG9jAukhVo6ykBOswRKdBXunYsRtcyxf4PS+wGde8zw+qUCO4cPsfaZeM5bDHA3m4QuhQI03UkDbROPcW3ZKdVEYbB3a9+OjTkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=3MqRGQeZ7PJ+rNcDhPlyWzhr+lwZJFqJr5ZrBptvgT8=; b=ZCeEhecEnrGAqkKUdrOne/nYFwaodfKEDaeU5dxN+uGbGoaf4S5/Xzx+8bUvjzK1L+cI2jfUuRYlNDDgPwf9k6Hq3UGXuDHL0ZD3Y7kFxA08JCbwq0HK7LxBrqebdQzQZsQhK4uQFUYlfZGoF2D118qiHSBc6ww5y7P8/rbTblk= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:56 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:56 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Parav Pandit , Moshe Shemesh , Saeed Mahameed Subject: [net-next 11/16] net/mlx5: Simplify mlx5_register_device to return void Date: Wed, 25 Mar 2020 23:38:04 -0700 Message-Id: <20200326063809.139919-12-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:54 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e81bab32-89bc-4ef0-ebe7-08d7d1505bec X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1824; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UZi7wtahvoqU4eT8xnR8oIYqUUTH4FH+P6dPu80WjjpQ8LXJJfhbU/bL+bzClBwFhVJNVBz1abK4ZOF+XZe03vZJfFrQ8EauZjDPSt7VH1JRq4vVqyyGRRlmLKEjNyeJT1FBHAVtqP0XiGZvijxc6a3wQc7MwTX21Yd9jdiLKM+AVBgQ6ufWOMpzh7JG9LYXBWtyL0dmgnMR+JH0dWzPgwWzgZ8ZI91YZ/RNzYooMpAwajgrnFMIw2qMHjqyTx/A8ad1V/4rRRZe67bUeOEvtGgKiFlB6hW2bzefJHdMVht3jrPfwcEZZ3gJESi7EasEDWS2xhyQ/MuHdxTsNcrUuU96v2uyUQTjPfSdQBaWOnBer4m/89QOB2ABQ2Mj6sgHiugyLEApkfTcsDszlFnspy872aSTgJFkVYFPmhf+76HQML8nUPTI+BUnyXah+lRKxIzeWa4J+uPeyqbU8j3pEy621ylRG4G8SgMv9DynGpKy/JF/f9Ai9jvirhQeXQKu X-MS-Exchange-AntiSpam-MessageData: 7MQvXzWHZ52zpYPkCBo5pffuhTZuu4gMV5HpILzVHHE/QJYUaEPsNk8z3lEl9nnQYjSBu4iRvi8buNWpDeFJlhwP+hq/H3uGVIpxdDX723OG5Gg/XcNZouugHdaD1THfFcv6d5PKyqTn2BHY9Ffsqg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: e81bab32-89bc-4ef0-ebe7-08d7d1505bec X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:56.8555 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: d380pwxawsWz3ZluZT8hgQDfDTbMGLPlx5bSyYvztVYb0YLdiOXqU9AVv8RLcCmSntWI4HibbxTKOv3AmyYXMQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Parav Pandit mlx5_register_device() doesn't check for any error and always returns 0. Simplify mlx5_register_device() to return void and its caller, remove dead code related to it. Reviewed-by: Moshe Shemesh Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/dev.c | 4 +--- drivers/net/ethernet/mellanox/mlx5/core/main.c | 14 +++----------- .../net/ethernet/mellanox/mlx5/core/mlx5_core.h | 2 +- 3 files changed, 5 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/dev.c index 50862275544e..1972ddd12704 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/dev.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/dev.c @@ -193,7 +193,7 @@ bool mlx5_device_registered(struct mlx5_core_dev *dev) return found; } -int mlx5_register_device(struct mlx5_core_dev *dev) +void mlx5_register_device(struct mlx5_core_dev *dev) { struct mlx5_priv *priv = &dev->priv; struct mlx5_interface *intf; @@ -203,8 +203,6 @@ int mlx5_register_device(struct mlx5_core_dev *dev) list_for_each_entry(intf, &intf_list, list) mlx5_add_device(intf, priv); mutex_unlock(&mlx5_intf_mutex); - - return 0; } void mlx5_unregister_device(struct mlx5_core_dev *dev) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index 204a26bf0a5f..dc58feb5a975 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -1211,15 +1211,10 @@ int mlx5_load_one(struct mlx5_core_dev *dev, bool boot) goto err_devlink_reg; } - if (mlx5_device_registered(dev)) { + if (mlx5_device_registered(dev)) mlx5_attach_device(dev); - } else { - err = mlx5_register_device(dev); - if (err) { - mlx5_core_err(dev, "register device failed %d\n", err); - goto err_reg_dev; - } - } + else + mlx5_register_device(dev); set_bit(MLX5_INTERFACE_STATE_UP, &dev->intf_state); out: @@ -1227,9 +1222,6 @@ int mlx5_load_one(struct mlx5_core_dev *dev, bool boot) return err; -err_reg_dev: - if (boot) - mlx5_devlink_unregister(priv_to_devlink(dev)); err_devlink_reg: mlx5_unload(dev); err_load: diff --git a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h index da67b28d6e23..8c12f1be27ce 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h @@ -182,7 +182,7 @@ void mlx5_remove_device(struct mlx5_interface *intf, struct mlx5_priv *priv); void mlx5_attach_device(struct mlx5_core_dev *dev); void mlx5_detach_device(struct mlx5_core_dev *dev); bool mlx5_device_registered(struct mlx5_core_dev *dev); -int mlx5_register_device(struct mlx5_core_dev *dev); +void mlx5_register_device(struct mlx5_core_dev *dev); void mlx5_unregister_device(struct mlx5_core_dev *dev); void mlx5_add_dev_by_protocol(struct mlx5_core_dev *dev, int protocol); void mlx5_remove_dev_by_protocol(struct mlx5_core_dev *dev, int protocol); From patchwork Thu Mar 26 06:38:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261812 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=OK2WQnMF; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLg39Swz9sRR for ; Thu, 26 Mar 2020 17:39:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727803AbgCZGjG (ORCPT ); Thu, 26 Mar 2020 02:39:06 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727794AbgCZGjF (ORCPT ); Thu, 26 Mar 2020 02:39:05 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dvHi/BGbYEoWjjrGR0ARj47kg2HwshvuHvwNFxCzf6A0VzhAggb6Z+/cwM+dF43jFZEPXEwWyyYkcdaAtCUYhLzCLEKjzyZbaAUDj19PHQ6JZwck9Qe6kSHfYanqPJdXmgMmq032xyQU6cBTtvjQppz6Lx8vrwp346YIiUoTmvnqMsjFzPR6uyzEX2DgK3vUP81DF5dFfaAuHxwjSUS37MYC0u+lakBwOYPKhpXh2RBuLBIs3s0TrNmglylNuAQ4iIx3g+nBL1KMSQneeKZViSKw8MwRpTvlTgToQTUW7fP2zb+3iZYRJRNaU2KzjICvk84MUWN1Uhs+mRMaaiOpuw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DSWeKbxMBHnELrjCZxXFRE0NOOIf7rqcoOkN41CtQ/k=; b=dww7g8LLSyFYQsbcIWCbDhXjlhHEpiWMI76Q3KwHN5O5Cbs7CBchOwrBtetQwcO33pvwLz1H4EhzfBPOLDCmeuHl2d4g3CpJXTfIGFtaXCHWzJegMIMcFMoBbesSAAoxoY3SpaQd3jqHOwSuhimIKYqWLbGzzbqkRi4Z59gyLS2/bDPyYWCeV2kkhX2zt0Jlrcg5PXupJb8V9NbafURly8AvXZg00hLwrus2SxVTOS2igEh+FtXB4tAHXP7LVOliDZDMpYcEqIBqHaIxFHyhXb3H/aXwbcNs9v4PiRZjqWh2RadsQR8iCW46rdxNzsFNY8rlpu28lz1ExB4YIRbHmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=DSWeKbxMBHnELrjCZxXFRE0NOOIf7rqcoOkN41CtQ/k=; b=OK2WQnMF5y7XeoZHoMW4g0U+wsaTzeEYaEai04AgCiQIhU7jI3Huqh6EKOXs97uUdFbSymeR0EMBBe5tir4053Xx6IYOnjGYfIZGVmwlMUTVbXbGB+1xmT6xi55be+2/i6VfGk3/qQAUOS8mJ26/okcyv+4QRmZ2Q7NzKKQaBtM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:38:59 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:38:59 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Parav Pandit , Moshe Shemesh , Saeed Mahameed Subject: [net-next 12/16] net/mlx5: Simplify mlx5_unload_one() and its callers Date: Wed, 25 Mar 2020 23:38:05 -0700 Message-Id: <20200326063809.139919-13-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:38:57 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 470d80be-181a-44d8-b2f7-08d7d1505db1 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:883; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(6666004)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2n1MPhAZcMnMLt62R06KRHGt6mWPaZsDa5tNOY4ji6kY5jAPZAPEmae6Oq4GJoDAOjJnMl65/h5DtpcuBe1IH4tyNSv4p56B40Y5IlFYFI+Q7DtOLlBH7husrJLsb5MHNj5SkSnukV6+huICztkaWg2mzP/qvyMi3yvOlememCdCEyf3x/azZOrT5hNNMKskvk7JUMVU2Kpjdk9nYg8EvUKC1tCSsc/kuXemHZvgNA0eLzouIxUR0hwE7K5A85gtYUBqe1M2iDFzwpLmf1xwWcfrrzc+jkMZ365jzSCp6TKgI/NdVD1AI9zJgMlCn+G55SNSbbZpRtXP/51jMA3G/XynqbO9gsHahtmjK1cVvKsISI8d5i3Rm7X6vb6F182TovwRX4jJ+SsELBUUIW66ZtZdvi1HSv24c88j2CEMzMd8g0ChhB2fVNpIPq/x7bp8+l1axA/gqj3sfuzGk7KUi6SRXgXg8CqoTXHBpn47iveEAXWJA3ALoRlb6+YRmP7x X-MS-Exchange-AntiSpam-MessageData: XIUoRmgcRYlpuUqlvMipaCvyEpUQLZ6pG4hyVjPTgJxZR+E2KSR8Lz9+trw8mrUqBZfWEGlgaGo3u8ru+hkVPlh1FJiLU5kRabnvwxJ+zhSbCYqkwFwPvCc58EqDBY172I202YJl4vT6B+a1keAC8A== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 470d80be-181a-44d8-b2f7-08d7d1505db1 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:38:59.7709 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XG8KEXN6adPzQwDijcUQfxVpGMfhBCzu7Hdag40wXzy+edUL6hV5ZqZYviQ/wLLSUwWu+Gn0pBbz24ZXENiFfQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Parav Pandit mlx5_unload_one() always returns 0. Simplify callers of mlx5_unload_one() and remove the dead code. Reviewed-by: Moshe Shemesh Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed --- drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 3 ++- drivers/net/ethernet/mellanox/mlx5/core/main.c | 10 ++-------- drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 2 +- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c index b7bb81b8c49b..bdeb291f6b67 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c @@ -90,7 +90,8 @@ static int mlx5_devlink_reload_down(struct devlink *devlink, bool netns_change, { struct mlx5_core_dev *dev = devlink_priv(devlink); - return mlx5_unload_one(dev, false); + mlx5_unload_one(dev, false); + return 0; } static int mlx5_devlink_reload_up(struct devlink *devlink, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index dc58feb5a975..4a9d9cae8628 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -1235,7 +1235,7 @@ int mlx5_load_one(struct mlx5_core_dev *dev, bool boot) return err; } -int mlx5_unload_one(struct mlx5_core_dev *dev, bool cleanup) +void mlx5_unload_one(struct mlx5_core_dev *dev, bool cleanup) { if (cleanup) { mlx5_unregister_device(dev); @@ -1264,7 +1264,6 @@ int mlx5_unload_one(struct mlx5_core_dev *dev, bool cleanup) mlx5_function_teardown(dev, cleanup); out: mutex_unlock(&dev->intf_state_mutex); - return 0; } static int mlx5_mdev_init(struct mlx5_core_dev *dev, int profile_idx) @@ -1385,12 +1384,7 @@ static void remove_one(struct pci_dev *pdev) mlx5_crdump_disable(dev); mlx5_devlink_unregister(devlink); - if (mlx5_unload_one(dev, true)) { - mlx5_core_err(dev, "mlx5_unload_one failed\n"); - mlx5_health_flush(dev); - return; - } - + mlx5_unload_one(dev, true); mlx5_pci_close(dev); mlx5_mdev_uninit(dev); mlx5_devlink_free(devlink); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h index 8c12f1be27ce..a8fb43a85d1d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h @@ -244,6 +244,6 @@ enum { u8 mlx5_get_nic_state(struct mlx5_core_dev *dev); void mlx5_set_nic_state(struct mlx5_core_dev *dev, u8 state); -int mlx5_unload_one(struct mlx5_core_dev *dev, bool cleanup); +void mlx5_unload_one(struct mlx5_core_dev *dev, bool cleanup); int mlx5_load_one(struct mlx5_core_dev *dev, bool boot); #endif /* __MLX5_CORE_H__ */ From patchwork Thu Mar 26 06:38:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261813 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=EIzmgn0A; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLj4l77z9sRR for ; Thu, 26 Mar 2020 17:39:09 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727817AbgCZGjJ (ORCPT ); Thu, 26 Mar 2020 02:39:09 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727798AbgCZGjI (ORCPT ); Thu, 26 Mar 2020 02:39:08 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fwxCh5yecj2U1HHwt3Pu3WDH+1fh6egO1RE2JFWQcP3DVnuRnOdo/ynYmftNqaDs7aZlL81IgVf0NZctmSps2qtnOTPywueVoOPjO49Gm86eKPv9kvCmP8Gam43r+xmiTUPLKNfVSef3xf96lXXO8Q84jod+KkVNOJSLqJ9f6QCoARg8zhT3+ZXD5Bx1jKXxx7uKxjuzkS+UUJZU9nFyfY3KzyOfZLm3w90rhNzu3ORs7dISSTZNgsIy4xjynXsmWiB1wVYnCw8EWOoOgVtfRhE1HT+vcy8TtZ3jjwCHJmquNwKMYuIypOA/zmCtDJIPuf03+rpIo8/u7fSszahMqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0dohxoXvLlzC8pv7CnYdFJ/8PTUam/8+S4yyerFT85U=; b=kKHY3S8E9xzEbHzehaP6xCWsC4N4S0mkvuq3GmJP45Eo01udpEXIRgWo6J1a4v5/5lDDdV/fSuVnzJCRwkWMEnFTWv6udbkYBjWhJ+YlIDqhYMJi9I6E4Pc2MqSoSCv65aIQEzcfSn4utGCmKKxGoXt2Yp/b/IMjDAh/iZm4ZJcMSlr0jRv6hHkrukkitkflf4LhY/fD48hy0DCwp29LiBRmO65EzK4ULUHZmcHQBU8qZR30salwhN7+JpIDMzNN89xusJEVtSpXICINByOtsQmIHTLjxCNsF9RM0X5Xk0IuVpHBWXIoy9ugrI/mxT+ql/mMZKV6eBAo3chilXK4ig== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=0dohxoXvLlzC8pv7CnYdFJ/8PTUam/8+S4yyerFT85U=; b=EIzmgn0ARKiPNkiZ23n5S7RgvdUd/KDktDT+P/XLuiSwPXxI8zkBeouMViTnGZ/Pi3spVC3+1bfSPEZEJxlfx+FK6ddonARDuI3i+gw7yVLh72DFB+mX1CSvomXXMJb/zwhU7Da4Ahicm1UtoTFWrmo2TvJhXI3gicDjKmSivMw= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:39:02 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:39:02 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Parav Pandit , Mark Bloch , Saeed Mahameed Subject: [net-next 13/16] devlink: Rely on driver eswitch thread safety instead of devlink Date: Wed, 25 Mar 2020 23:38:06 -0700 Message-Id: <20200326063809.139919-14-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:39:00 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 1e94b0f8-e924-4d57-29e3-08d7d1505f54 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:6430; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: e23v50j5/s/vXmXeL87DcxYIQcIo+BqfKy1KcGou3RTHNDgxAzr0zAAiAm5uQOmUstmhdNhuu8wuB0gZyYVCqDnBiNpgqhAzhRi0bUqgyVTVe6kESbwDzMeIFbmDJtvjkec0eKHnUSclPLDA0kFYXwcLFYqufKUN1jh4Ovs5gRyNsK49C+dkbCS+AJwN3mchi2zs2qfDDlOkHk4HTU2T0Fq2Ifpw4Lio85BwWy+Hf86S2sBDHn67vzXEbTW7iCSIchewGWMk4t2mfbW4TuPPIMQZqvvwknVfjN9R4adoZCCFg71ZZgf/xjKm7iN44ydqlc9ZRCBa98UFvd/qGuUu2UBKD2KMpK/x01cKoZwhGmFXj4dL9FqhjvFbPQyDpc+vtoRefqdCC/uiawBqfabLBijcG6acaD4Aru6DilQ6cBR/YiKR9fUquc5jVLE3rUI+xHRtrF9gijWHvWxLbilp1E5G3Tn4yRMzkFDZxwd/CtNUB5KN5Ion/kdAoYmWZTVZ X-MS-Exchange-AntiSpam-MessageData: l3qZKPJElTdKXDbmS7MHYPQhqkeSJJJq9nqvgwI3XJkL4RxgGHAbhUA09dpe93E+Z6hWzxh4xfpj17bEhhMG7bKxUFyV1/lnzlu23XvARnanZoWrsrJXFklcbVK187aOPAiVOs85CppLfd3qtDTumg== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1e94b0f8-e924-4d57-29e3-08d7d1505f54 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:39:02.5473 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iuP7rsCxjNTvFuxEGHh4XBhXAikGLSlczULmWgMoMaZ6G8/Q91uPcA7jjFmOO5Iz8DYC+fbtnSuhTZywP4Itug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Parav Pandit devlink_nl_cmd_eswitch_set_doit() doesn't hold devlink->lock mutex while invoking driver callback. This is likely due to eswitch mode setting involves adding/remove devlink ports, health reporters or other devlink objects for a devlink device. So it is driver responsiblity to ensure thread safe eswitch state transition happening via either sriov legacy enablement or via devlink eswitch set callback. Therefore, get() callback should also be invoked without holding devlink->lock mutex. Vendor driver can use same internal lock which it uses during eswitch mode set() callback. This makes get() and set() implimentation symmetric in devlink core and in vendor drivers. Hence, remove holding devlink->lock mutex during eswitch get() callback. Failing to do so results into below deadlock scenario when mlx5_core driver is improved to handle eswitch mode set critical section invoked by devlink and sriov sysfs interface in subsequent patch. devlink_nl_cmd_eswitch_set_doit() mlx5_eswitch_mode_set() mutex_lock(esw->mode_lock) <- Lock A [...] register_devlink_port() mutex_lock(&devlink->lock); <- lock B mutex_lock(&devlink->lock); <- lock B devlink_nl_cmd_eswitch_get_doit() mlx5_eswitch_mode_get() mutex_lock(esw->mode_lock) <- Lock A In subsequent patch, mlx5_core driver uses its internal lock during get() and set() eswitch callbacks. Other drivers have been inspected which returns either constant during get operations or reads the value from already allocated structure. Hence it is safe to remove the lock in get( ) callback and let vendor driver handle it. Reviewed-by: Jiri Pirko Reviewed-by: Mark Bloch Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed --- net/core/devlink.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/core/devlink.c b/net/core/devlink.c index 73bb8fbe3393..a9036af7e002 100644 --- a/net/core/devlink.c +++ b/net/core/devlink.c @@ -6187,7 +6187,8 @@ static const struct genl_ops devlink_nl_ops[] = { .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = devlink_nl_cmd_eswitch_get_doit, .flags = GENL_ADMIN_PERM, - .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK, + .internal_flags = DEVLINK_NL_FLAG_NEED_DEVLINK | + DEVLINK_NL_FLAG_NO_LOCK, }, { .cmd = DEVLINK_CMD_ESWITCH_SET, From patchwork Thu Mar 26 06:38:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261814 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=uChmz50u; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLm1NB2z9sRR for ; Thu, 26 Mar 2020 17:39:12 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727828AbgCZGjL (ORCPT ); Thu, 26 Mar 2020 02:39:11 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727805AbgCZGjK (ORCPT ); Thu, 26 Mar 2020 02:39:10 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Kn9KYWZ9FMSwUBSFyEOGiNHg0DJZLsGdNOESsfTtBt3j0tXZjb7wBQRIJ/HRcFb20H6qn0yiJ6A9tE8YJMDOC1d7oXLGVfL9G0gd8JLf8Q9QoFG7jtndn3tY4tq5AoslzVavNNrti1IgX4wCTTIouaWKt889TTI7NMDuTl29ZgMr/FkOcwbg0eyhgrLfhn1y9cX7ZCQNPCQeSm1tcngtzBHDOn0zqCfkjlnAXdCOahLh7aUADeXEoISgyXqDYvZBAFNgfXKy3LvUrwRbSFHa51YSrGMsHQ0k16CMepavg2ZLAsq+meF+ZUhb/hsO4hEaa2OqUx+k6G403D+WBJZLyw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DEmEZVRluVXwaJ8SZq7hruPiC/70FvrOKy/DMSlnUQQ=; b=RDx6NfjYYhhdEEGUXygz95KfbeAo3z7RG9yORP4p8tCZCD1KvCbRqrX6VnE+MiY+kne2xIy/9AN258jZ2Kzklvfy2V84dUcbzOOUaFBcGHs9sYHFKkpC2FXU4pvd9XJ+9Pp4/3CfL+w+Db+Ow9DULW4LB61AYCDDOYzQoZ9X+mYPU8kp/yqkaHB436FSmrGUBGdeGKc86IR1QJmub9NB6EkCs6b8FOiMXE4OVZtxbXdUhYjpnsClnxD1ByqC5PdGJnfMAaXnEw9vHn3Nz79Go6lPDtMy7+qx38gGgdkdB9NrHGMwJ/zOwwbbRive9jKdJQAeJ4V+9y+jSAXViBA6Ow== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=DEmEZVRluVXwaJ8SZq7hruPiC/70FvrOKy/DMSlnUQQ=; b=uChmz50uS2w5dG3P5s3Z53DzhAiHD+89EecIxCCrLisK8mSLVVxb6ljaLGtJLYqQqathxh8RWP615mI7npW/3/lLOTJFgB2xAzc0FYy6+9inCCAb/Xbsac2mNxtzBembfuu9RZ58yxBfANgG7NjT0hfFZkVrg7/Bn7IkNthiizc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:39:05 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:39:05 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Parav Pandit , Roi Dayan , Bodong Wang , Mark Bloch , Saeed Mahameed Subject: [net-next 14/16] net/mlx5: Split eswitch mode check to different helper function Date: Wed, 25 Mar 2020 23:38:07 -0700 Message-Id: <20200326063809.139919-15-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:39:02 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 23070855-be0f-4149-5741-08d7d15060f4 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1751; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: G6RKgjN1Mim8/IVAsO4CYbfUYohePKWSjCc/PUwYKqvsoWOks2eijsEqFn93s2oqeyK86zzEnIYBrrrKFRVW8PywZBKP8QVyXA6WJxtDtG4QcqptSjHQdJc41f7srxAttq6SJr1GFn7tjZ8EK2Yp6dy7zbNXouF3o+SHqwSYJ0mJAiDfrl7HlxQaMp3fraC8Acdz3Ib5PoBLVtG/QzzZnRjV61S4nH5luscUD+xPwk+YbsxerXqNs//97Ww295Vx+mMk7R36kZYJGbeA4t9cLe7S8dJPd7IoykCvIkiNdDGDJridmuZW5sJsCA89kpXJgJyyMBZAzT9GdcsrMkc4OYfPVrN6fxqCdlktSTD+Dq+O9TuI0dYVw2ExjvGRbe99x0zeXzYl6DUXxNMtsBo8xn6ZybqqsN9AsR/MRUJ1zWAZpZG6ZIXUGpglLqKxnh93V19bzBAAIwL02X2NTRsn7N4xpTQyY69IPS34l6N6ux7dx2JCQ/BXtyY9gm7VU1w9 X-MS-Exchange-AntiSpam-MessageData: m5ydh4l+S8zBdi7U13cYkrMeUZDPRnsUWlQUgb3Iu6wwwcIpny+sHBRCbAQy/XshsNLKYWA62dG476Qq8hNdvM8g86y9QVxtoAsXqaOpnIhsCDW3DtoCpo0VzbBTrC2XRFmIohyTma/xitxBZveTMw== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23070855-be0f-4149-5741-08d7d15060f4 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:39:05.2348 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 9YG5W9yAg2fqEiT3Vi2H1gsLnF7DUxB1kWmnWof1gcHUrBKa7Cy4L0pEvmNqpDWE0kdXlJIkPXbcXuhevh9TJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Parav Pandit In order to check eswitch state under a lock, prepare code to split capability check and eswitch state check into two helper functions. Reviewed-by: Roi Dayan Reviewed-by: Bodong Wang Reviewed-by: Mark Bloch Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed --- .../mellanox/mlx5/core/eswitch_offloads.c | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index 088fb51123e2..53fcb00ddbac 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -2506,13 +2506,18 @@ static int mlx5_eswitch_check(const struct mlx5_core_dev *dev) if(!MLX5_ESWITCH_MANAGER(dev)) return -EPERM; - if (dev->priv.eswitch->mode == MLX5_ESWITCH_NONE && - !mlx5_core_is_ecpf_esw_manager(dev)) - return -EOPNOTSUPP; - return 0; } +static int eswitch_devlink_esw_mode_check(const struct mlx5_eswitch *esw) +{ + /* devlink commands in NONE eswitch mode are currently supported only + * on ECPF. + */ + return (esw->mode == MLX5_ESWITCH_NONE && + !mlx5_core_is_ecpf_esw_manager(esw->dev)) ? -EOPNOTSUPP : 0; +} + int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode, struct netlink_ext_ack *extack) { @@ -2524,6 +2529,10 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode, if (err) return err; + err = eswitch_devlink_esw_mode_check(dev->priv.eswitch); + if (err) + return err; + cur_mlx5_mode = dev->priv.eswitch->mode; if (esw_mode_from_devlink(mode, &mlx5_mode)) @@ -2549,6 +2558,10 @@ int mlx5_devlink_eswitch_mode_get(struct devlink *devlink, u16 *mode) if (err) return err; + err = eswitch_devlink_esw_mode_check(dev->priv.eswitch); + if (err) + return err; + return esw_mode_to_devlink(dev->priv.eswitch->mode, mode); } @@ -2564,6 +2577,10 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode, if (err) return err; + err = eswitch_devlink_esw_mode_check(esw); + if (err) + return err; + switch (MLX5_CAP_ETH(dev, wqe_inline_mode)) { case MLX5_CAP_INLINE_MODE_NOT_REQUIRED: if (mode == DEVLINK_ESWITCH_INLINE_MODE_NONE) @@ -2618,6 +2635,10 @@ int mlx5_devlink_eswitch_inline_mode_get(struct devlink *devlink, u8 *mode) if (err) return err; + err = eswitch_devlink_esw_mode_check(esw); + if (err) + return err; + return esw_inline_mode_to_devlink(esw->offloads.inline_mode, mode); } @@ -2633,6 +2654,10 @@ int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink, if (err) return err; + err = eswitch_devlink_esw_mode_check(esw); + if (err) + return err; + if (encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE && (!MLX5_CAP_ESW_FLOWTABLE_FDB(dev, reformat) || !MLX5_CAP_ESW_FLOWTABLE_FDB(dev, decap))) @@ -2682,6 +2707,10 @@ int mlx5_devlink_eswitch_encap_mode_get(struct devlink *devlink, if (err) return err; + err = eswitch_devlink_esw_mode_check(esw); + if (err) + return err; + *encap = esw->offloads.encap; return 0; } From patchwork Thu Mar 26 06:38:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261815 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=VuOLYQb9; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLq3CYVz9sRR for ; Thu, 26 Mar 2020 17:39:15 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727833AbgCZGjO (ORCPT ); Thu, 26 Mar 2020 02:39:14 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727821AbgCZGjO (ORCPT ); Thu, 26 Mar 2020 02:39:14 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SdhJopqwLk9mh/MxoGF8LDTz5cvRKTj7keOshC+iGr7iniFzG9/+WambNJ4lvubUq8Pp31arcuO94r2l2lekQ0vEQB6i/0GrmbBK8FJDzg7jfNT4hZco/ywEjlWaCFhT0Bfvr4Ycpzv7fbTuQnbO6iUFUUjoKLTRWlNPq6xp6JqPzA2pbWIxuXEY6GpESLzHfsNQMkZVjtZtMBuvw+sEcuBme9bkYvdLKNcjIEEbMqcw6Fw0C8M3SU6zJiEuOa3R0iS+XDEab03FUrJfaHQoSWc2nnLkzHB2JXGbUbHJUWr1e1PSGPMCoRtlgmmrK5fsM2Q/NeQUoS1ILkT7bLekyQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DxyUbW3jxKxSkbE6uMwshA3WZWks0ek9yiJ+UM2273I=; b=FRkaxU40VS6hGffpNrmsTOPdWRxlq1reSFKNATWS8Rf+SD2N3TGIUBZ6sPckpRCKkXRCYxCORtODaUf45/bfO/dCPzqbP9TkwcTrACNCvLSjSGAuDoAJSZ6gNpkYwcHEPMBcPqXuhz63COfQbri4o8gNpkbXLtRx9LW/5Jjtq74HsM3Nhsx+PwHc/hQEIQ25aExCG4HGC1F7EIPSpPXO597iQXqL57Me1RlPpjpjXKe/FKYZa3l3DuR8ELF2+cDaJcx1qEF/pc9P8/jPXt78KPLtvKDlEc/vqqA5c07O2nSuZUrKnqEflWJDyILR4jK+OWDBWE6h/mRX1EKKP2GHdQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=DxyUbW3jxKxSkbE6uMwshA3WZWks0ek9yiJ+UM2273I=; b=VuOLYQb9sRnI8zg2NRn9CiWb7MKKx2tgJqPA6bl+9Rq56pmhNwyG/lNudwLzGZtgAHzGEJCLxUXA/cUgHr/ouHkrQ4hl8kUXWcTBmFaVjd6XanaKz/xCTIldiH2ITrdl6cr0Nb088lc7Sidiqfa0cSLYXC0U4gOelIW6HCIjrRc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:39:08 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:39:08 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Parav Pandit , Roi Dayan , Bodong Wang , Mark Bloch , Saeed Mahameed Subject: [net-next 15/16] net/mlx5: E-switch, Extend eswitch enable to handle num_vfs change Date: Wed, 25 Mar 2020 23:38:08 -0700 Message-Id: <20200326063809.139919-16-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:39:05 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 53d18923-6f5e-411e-ce56-08d7d15062d3 X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2657; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +4yLm9Z9BhdINXKHGNiVkUK8vsvQlQDWHZnEc19cqT8G8nrnoHsdLnfZYiV15iBH4dtGu+nRJgzsVbQ38yLOlwsU+iwR3F50hQqgwNYpBWRyC8Fjmh/5g0ZIj0JpMGbPeBoe/mz73tSeYhFAics3HzqtTyFaXl6ztkFqOqXzKssEjSbh2jw4B1po3m6QKoXazE6ILpMmUXkKmQkGh/4xR0ncYj7b8CnJVYXXuMizTEWXg6wxppqN9Cz6OSKQyk5K9lSKzz/vsk4mmMq/j7V2VvQuevb+NrBNHJbxWqS3EZPfjgm9aaiRCUv00+ZLzyBMk6EK20pjlGhpBQ/wg6npOaQENwimYTauEkw7/w73UlVQtAeXwU3Yh8ojMi8/9Klc0uLa7a8xXskdhj8c/1Pdowhl/tZ7Jsy9nQ2gt7JsPEdZYDKrTh/IAWFvtkKnIW5O1G9x8KU8zVn3+FmgkfK4wv5c1wE+994RfTL5MPBNl0pxUbqUL5/K51dTReJK5KTR X-MS-Exchange-AntiSpam-MessageData: G/hbIsHHPDhY0AnSnnlDbgEIY4RGnoNbOl9i6JOcvJHYoIL92DWRL787OyBTSePa19WGATIeNZgw6ibABbFioy0JgmY3skKK8oaEWnfPrcuxF8x2onN8N8NQFo1DJZx6NKss5iejuKx0ImaSZ4QmUQ== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53d18923-6f5e-411e-ce56-08d7d15062d3 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:39:08.5339 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: pE2V4rIUJwokGmPdeJsGa73upxgrEKQPsjq02t4zzCQ/uf3XxWEddiLGdgrQkgyc28Fo5/JYG2pt3LPT4rY+uQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Parav Pandit Subsequent patch protects eswitch mode changes across sriov and devlink interfaces. It is desirable for eswitch to provide thread safe eswitch enable and disable APIs. Hence, extend eswitch enable API to optionally update num_vfs when requested. In subsequent patch, eswitch num_vfs are updated after all the eswitch users eswitch drops its reference count. Reviewed-by: Roi Dayan Reviewed-by: Bodong Wang Reviewed-by: Mark Bloch Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed --- .../net/ethernet/mellanox/mlx5/core/eswitch.c | 63 +++++++++++++------ .../net/ethernet/mellanox/mlx5/core/eswitch.h | 10 ++- .../mellanox/mlx5/core/eswitch_offloads.c | 13 ++-- .../net/ethernet/mellanox/mlx5/core/sriov.c | 4 +- 4 files changed, 58 insertions(+), 32 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c index 8fc351240f4c..a22f9c77e4c3 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c @@ -2067,7 +2067,48 @@ static void mlx5_eswitch_get_devlink_param(struct mlx5_eswitch *esw) } } -int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode) +static void +mlx5_eswitch_update_num_of_vfs(struct mlx5_eswitch *esw, int num_vfs) +{ + const u32 *out; + + WARN_ON_ONCE(esw->mode != MLX5_ESWITCH_NONE); + + if (num_vfs < 0) + return; + + if (!mlx5_core_is_ecpf_esw_manager(esw->dev)) { + esw->esw_funcs.num_vfs = num_vfs; + return; + } + + out = mlx5_esw_query_functions(esw->dev); + if (IS_ERR(out)) + return; + + esw->esw_funcs.num_vfs = MLX5_GET(query_esw_functions_out, out, + host_params_context.host_num_of_vfs); + kvfree(out); +} + +/** + * mlx5_eswitch_enable - Enable eswitch + * @esw: Pointer to eswitch + * @mode: Eswitch mode to enable + * @num_vfs: Enable eswitch for given number of VFs. This is optional. + * Valid value are 0, > 0 and MLX5_ESWITCH_IGNORE_NUM_VFS. + * Caller should pass num_vfs > 0 when enabling eswitch for + * vf vports. Caller should pass num_vfs = 0, when eswitch + * is enabled without sriov VFs or when caller + * is unaware of the sriov state of the host PF on ECPF based + * eswitch. Caller should pass < 0 when num_vfs should be + * completely ignored. This is typically the case when eswitch + * is enabled without sriov regardless of PF/ECPF system. + * mlx5_eswitch_enable() Enables eswitch in either legacy or offloads mode. + * If num_vfs >=0 is provided, it setup VF related eswitch vports. It returns + * 0 on success or error code on failure. + */ +int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode, int num_vfs) { int err; @@ -2085,6 +2126,8 @@ int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode) mlx5_eswitch_get_devlink_param(esw); + mlx5_eswitch_update_num_of_vfs(esw, num_vfs); + esw_create_tsar(esw); esw->mode = mode; @@ -2811,22 +2854,4 @@ bool mlx5_esw_multipath_prereq(struct mlx5_core_dev *dev0, dev1->priv.eswitch->mode == MLX5_ESWITCH_OFFLOADS); } -void mlx5_eswitch_update_num_of_vfs(struct mlx5_eswitch *esw, const int num_vfs) -{ - const u32 *out; - - WARN_ON_ONCE(esw->mode != MLX5_ESWITCH_NONE); - - if (!mlx5_core_is_ecpf_esw_manager(esw->dev)) { - esw->esw_funcs.num_vfs = num_vfs; - return; - } - - out = mlx5_esw_query_functions(esw->dev); - if (IS_ERR(out)) - return; - esw->esw_funcs.num_vfs = MLX5_GET(query_esw_functions_out, out, - host_params_context.host_num_of_vfs); - kvfree(out); -} diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h index 95532b258c2b..752d399bdffb 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h @@ -296,7 +296,9 @@ int mlx5_esw_modify_vport_rate(struct mlx5_eswitch *esw, u16 vport_num, /* E-Switch API */ int mlx5_eswitch_init(struct mlx5_core_dev *dev); void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw); -int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode); + +#define MLX5_ESWITCH_IGNORE_NUM_VFS (-1) +int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode, int num_vfs); void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf); int mlx5_eswitch_set_vport_mac(struct mlx5_eswitch *esw, u16 vport, u8 mac[ETH_ALEN]); @@ -635,7 +637,6 @@ mlx5_eswitch_get_vport(struct mlx5_eswitch *esw, u16 vport_num); bool mlx5_eswitch_is_vf_vport(const struct mlx5_eswitch *esw, u16 vport_num); -void mlx5_eswitch_update_num_of_vfs(struct mlx5_eswitch *esw, const int num_vfs); int mlx5_esw_funcs_changed_handler(struct notifier_block *nb, unsigned long type, void *data); int @@ -673,7 +674,7 @@ void mlx5_eswitch_unload_vf_vports(struct mlx5_eswitch *esw, u16 num_vfs); /* eswitch API stubs */ static inline int mlx5_eswitch_init(struct mlx5_core_dev *dev) { return 0; } static inline void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw) {} -static inline int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode) { return 0; } +static inline int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode, int num_vfs) { return 0; } static inline void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf) {} static inline bool mlx5_esw_lag_prereq(struct mlx5_core_dev *dev0, struct mlx5_core_dev *dev1) { return true; } static inline bool mlx5_eswitch_is_funcs_handler(struct mlx5_core_dev *dev) { return false; } @@ -682,14 +683,11 @@ static inline const u32 *mlx5_esw_query_functions(struct mlx5_core_dev *dev) return ERR_PTR(-EOPNOTSUPP); } -static inline void mlx5_eswitch_update_num_of_vfs(struct mlx5_eswitch *esw, const int num_vfs) {} - static inline struct mlx5_flow_handle * esw_add_restore_rule(struct mlx5_eswitch *esw, u32 tag) { return ERR_PTR(-EOPNOTSUPP); } - #endif /* CONFIG_MLX5_ESWITCH */ #endif /* __MLX5_ESWITCH_H__ */ diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index 53fcb00ddbac..84a38f0739d0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -1593,12 +1593,13 @@ static int esw_offloads_start(struct mlx5_eswitch *esw, } mlx5_eswitch_disable(esw, false); - mlx5_eswitch_update_num_of_vfs(esw, esw->dev->priv.sriov.num_vfs); - err = mlx5_eswitch_enable(esw, MLX5_ESWITCH_OFFLOADS); + err = mlx5_eswitch_enable(esw, MLX5_ESWITCH_OFFLOADS, + esw->dev->priv.sriov.num_vfs); if (err) { NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch to offloads"); - err1 = mlx5_eswitch_enable(esw, MLX5_ESWITCH_LEGACY); + err1 = mlx5_eswitch_enable(esw, MLX5_ESWITCH_LEGACY, + MLX5_ESWITCH_IGNORE_NUM_VFS); if (err1) { NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch back to legacy"); @@ -2397,10 +2398,12 @@ static int esw_offloads_stop(struct mlx5_eswitch *esw, int err, err1; mlx5_eswitch_disable(esw, false); - err = mlx5_eswitch_enable(esw, MLX5_ESWITCH_LEGACY); + err = mlx5_eswitch_enable(esw, MLX5_ESWITCH_LEGACY, + MLX5_ESWITCH_IGNORE_NUM_VFS); if (err) { NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch to legacy"); - err1 = mlx5_eswitch_enable(esw, MLX5_ESWITCH_OFFLOADS); + err1 = mlx5_eswitch_enable(esw, MLX5_ESWITCH_OFFLOADS, + MLX5_ESWITCH_IGNORE_NUM_VFS); if (err1) { NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch back to offloads"); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c index 03f037811f1d..10a64b91d04c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c @@ -77,8 +77,8 @@ static int mlx5_device_enable_sriov(struct mlx5_core_dev *dev, int num_vfs) if (!MLX5_ESWITCH_MANAGER(dev)) goto enable_vfs_hca; - mlx5_eswitch_update_num_of_vfs(dev->priv.eswitch, num_vfs); - err = mlx5_eswitch_enable(dev->priv.eswitch, MLX5_ESWITCH_LEGACY); + err = mlx5_eswitch_enable(dev->priv.eswitch, MLX5_ESWITCH_LEGACY, + num_vfs); if (err) { mlx5_core_warn(dev, "failed to enable eswitch SRIOV (%d)\n", err); From patchwork Thu Mar 26 06:38:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Saeed Mahameed X-Patchwork-Id: 1261816 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 (no SPF record) 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.a=rsa-sha256 header.s=selector1 header.b=ENQG9MNc; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48nwLs4C7dz9sRR for ; Thu, 26 Mar 2020 17:39:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727843AbgCZGjQ (ORCPT ); Thu, 26 Mar 2020 02:39:16 -0400 Received: from mail-eopbgr130079.outbound.protection.outlook.com ([40.107.13.79]:8291 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727830AbgCZGjQ (ORCPT ); Thu, 26 Mar 2020 02:39:16 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H3oGuKibDX6DIADBF9cP5v13ohGejZamCdkGHzb8mS7YXGtiy3C188GiRm5BzwZovJJHsJi4swKjTQ0N4Muz5keHBrkFic7jW9gpVMDsH2mheo8Rk9H9PocUiLfaFW+hzj6mnf+DvfCCdAEQLJ2+A8Tf33FNM3yNi2/rRH5zc0S46SoV7E3WmA/JJ0L/DCKntxSG/Dx4zHoZT674VzAEL7TDRE+ujM3eEZCObq7QAviGpsUgplGYMNTgT45072hFdi2HjhYFlsxqxD8HXpqcpU18+gFbmdzkh41+Z7MqRrZx8T0EhIiLunY5RfuhaauuOiTlAquOR6aHJHyaxpW5yw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EhKFnpCFiONJPS6YC4i1C5/eZeHMGJliKhna+HHR3nU=; b=ICeB2y4fs+Bo2Ss+oHSF1PDyoPN29XvyijV6zsaC7MyfFpHj7ZKYr5nHscWXRJQHSp9M51Q0d9uyyo/+CxSZcAxJ/jW2HRFpmrng3KL7YNGHb2kIsTaAW7wdAr+6KQuvSkPKYyQd6pKZiiU8jRcODS26kCzrt32Yk/XRH9YJCIuJRDIhRMq6JfmHCfBw/T6pOkpAnxUVseEQppz3Vm21FNZnxsp1DH/xUL4D9GKiClBVBuuG5Ihva1mJkp9b58ZTUtCmVgP+rtalqdJ4S+qN+KxxlI4rNyYhZm+PkXV4e0EDv1Oj9G3Zq288WEIxJrdaEdd+WdiBFI6Z7tigjmkOzQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none 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=EhKFnpCFiONJPS6YC4i1C5/eZeHMGJliKhna+HHR3nU=; b=ENQG9MNc/Z0FVuAOaUQDut+dEg+BSr5cyGP7pB0tCr9VMeFcVRX3hCka9CKUIOpHXHPThuyZKMZkmzSky0JlsNaojlTQFtf3ADa1AVgQRd8JsCoEPdToldCpxxsN4/9xrcIM7zH0G2ZiywfZh80uhPWH5L0RVMQG3MAUqYR+VMo= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=saeedm@mellanox.com; Received: from VI1PR05MB5102.eurprd05.prod.outlook.com (20.177.51.151) by VI1PR05MB6479.eurprd05.prod.outlook.com (20.179.25.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2835.23; Thu, 26 Mar 2020 06:39:11 +0000 Received: from VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2]) by VI1PR05MB5102.eurprd05.prod.outlook.com ([fe80::8cea:6c66:19fe:fbc2%7]) with mapi id 15.20.2835.023; Thu, 26 Mar 2020 06:39:11 +0000 From: Saeed Mahameed To: "David S. Miller" , kuba@kernel.org Cc: netdev@vger.kernel.org, Jiri Pirko , Parav Pandit , Roi Dayan , Bodong Wang , Mark Bloch , Saeed Mahameed Subject: [net-next 16/16] net/mlx5: E-switch, Protect eswitch mode changes Date: Wed, 25 Mar 2020 23:38:09 -0700 Message-Id: <20200326063809.139919-17-saeedm@mellanox.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200326063809.139919-1-saeedm@mellanox.com> References: <20200326063809.139919-1-saeedm@mellanox.com> X-ClientProxiedBy: BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) To VI1PR05MB5102.eurprd05.prod.outlook.com (2603:10a6:803:5e::23) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from smtp.office365.com (73.15.39.150) by BYAPR03CA0020.namprd03.prod.outlook.com (2603:10b6:a02:a8::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.19 via Frontend Transport; Thu, 26 Mar 2020 06:39:08 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [73.15.39.150] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: ef922f64-8b86-42b0-da78-08d7d150649c X-MS-TrafficTypeDiagnostic: VI1PR05MB6479:|VI1PR05MB6479: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:425; X-Forefront-PRVS: 0354B4BED2 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR05MB5102.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(39860400002)(366004)(346002)(396003)(376002)(136003)(30864003)(478600001)(107886003)(52116002)(6512007)(4326008)(86362001)(6486002)(8936002)(54906003)(6506007)(36756003)(1076003)(81156014)(81166006)(2906002)(316002)(8676002)(66946007)(186003)(16526019)(66556008)(66476007)(26005)(5660300002)(2616005)(956004)(54420400002); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qIKUHOsBHppfPhx1/ydv0YID4FYL+uRCRqDDxuLqFWVolYWjFVXmSP7kl9UyKJjb/9pXE/2UVNBbMux4bIlSE/ywViVxDmioTDCuUKuHod/gxBpTNZovnJqw0esCQ513dgeYlAbsAz86njdVCXTf2ckD8I13vfAL6u/4bvbB8I32hvHkb36KDFVwDrF47dGaSSfmw3//4J+4nmfadiXqra/A+++Kwbc04lLSTbhBgBmVxpcsdXeu9vgO/T5B22d/4B78HDf3+Ykrcuq7RHnFIVlPQAUhVA4SNk1g2NNgZNKHjXOpLuuELc96FbPMZU5utT1ZnNI+KLc0SfcytH3xH78nRvlEZ7kYwjQqYjke7rGqHVmi2oGBixRLuNkEBFiq/uR3AhGW8Fq2JMlqpqheiu1t8ESry4YR+dmgHk40+BpcOYFbfjnUSSlBGWWj50W18E6HsKrCW8Mw3IJTG+mt0rR/SMYAEDlJ8q2IgrakvGcvg8qDlwvfmeBjiYSsVFOD X-MS-Exchange-AntiSpam-MessageData: 2FTLWE8lV5fRQtjm1kwE6RH9pwRi+7g9rGt+btsjxHFohDiK1tGl9iBga9CUJTpyMm0q/grJvJ0/OIpyRBibRqv5jiO9l3uGC0wyWmAdUuI1JRJpm6ipKW2L5PDL5Wtn2kP6hvvYOn9HBzT2/G60qQ== X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef922f64-8b86-42b0-da78-08d7d150649c X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2020 06:39:11.7211 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eSJH1lRAs4P3C0wJGa/yzdKn8pN6p3PYTQnV/jeyN/xgt8EL5ZLqjDIu+3JPBrj5JdpOroGAEeb76EjEVXcZ3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB6479 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Parav Pandit Currently eswitch mode change is occurring from 2 different execution contexts as below. 1. sriov sysfs enable/disable 2. devlink eswitch set commands Both of them need to access eswitch related data structures in synchronized manner. Without any synchronization below race condition exist. SR-IOV enable/disable with devlink eswitch mode change: cpu-0 cpu-1 ----- ----- mlx5_device_disable_sriov() mlx5_devlink_eswitch_mode_set() mlx5_eswitch_disable() esw_offloads_stop() esw_offloads_disable() mlx5_eswitch_disable() esw_offloads_disable() Hence, they are synchronized using a new mode_lock. eswitch's state_lock is not used as it can lead to a deadlock scenario below and state_lock is only for vport and fdb exclusive access. ip link set vf netlink rcv_msg() - Lock A rtnl_lock vfinfo() esw->state_lock() - Lock B devlink eswitch_set devlink_mutex esw->state_lock() - Lock B attach_netdev() register_netdev() rtnl_lock - Lock A Alternatives considered: 1. Acquiring rtnl lock before taking esw->state_lock to follow similar locking sequence as ip link flow during eswitch mode set. rtnl lock is not good idea for two reasons. (a) Holding rtnl lock for several hundred device commands is not good idea. (b) It leads to below and more similar deadlocks. devlink eswitch_set devlink_mutex rtnl_lock - Lock A esw->state_lock() - Lock B eswitch_disable() reload() ib_register_device() ib_cache_setup_one() rtnl_lock() 2. Exporting devlink lock may lead to undesired use of it in vendor driver(s) in future. 3. Unloading representors outside of the mode_lock requires serialization with other process trying to enable the eswitch. 4. Differing the representors life cycle to a different workqueue requires synchronization with func_change_handler workqueue. Reviewed-by: Roi Dayan Reviewed-by: Bodong Wang Reviewed-by: Mark Bloch Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed --- .../net/ethernet/mellanox/mlx5/core/eswitch.c | 54 +++++++-- .../net/ethernet/mellanox/mlx5/core/eswitch.h | 11 +- .../mellanox/mlx5/core/eswitch_offloads.c | 105 ++++++++++++------ .../net/ethernet/mellanox/mlx5/core/sriov.c | 3 +- 4 files changed, 123 insertions(+), 50 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c index a22f9c77e4c3..7f618a443bfd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c @@ -2092,7 +2092,7 @@ mlx5_eswitch_update_num_of_vfs(struct mlx5_eswitch *esw, int num_vfs) } /** - * mlx5_eswitch_enable - Enable eswitch + * mlx5_eswitch_enable_locked - Enable eswitch * @esw: Pointer to eswitch * @mode: Eswitch mode to enable * @num_vfs: Enable eswitch for given number of VFs. This is optional. @@ -2104,16 +2104,17 @@ mlx5_eswitch_update_num_of_vfs(struct mlx5_eswitch *esw, int num_vfs) * eswitch. Caller should pass < 0 when num_vfs should be * completely ignored. This is typically the case when eswitch * is enabled without sriov regardless of PF/ECPF system. - * mlx5_eswitch_enable() Enables eswitch in either legacy or offloads mode. - * If num_vfs >=0 is provided, it setup VF related eswitch vports. It returns - * 0 on success or error code on failure. + * mlx5_eswitch_enable_locked() Enables eswitch in either legacy or offloads + * mode. If num_vfs >=0 is provided, it setup VF related eswitch vports. + * It returns 0 on success or error code on failure. */ -int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode, int num_vfs) +int mlx5_eswitch_enable_locked(struct mlx5_eswitch *esw, int mode, int num_vfs) { int err; - if (!ESW_ALLOWED(esw) || - !MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ft_support)) { + lockdep_assert_held(&esw->mode_lock); + + if (!MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ft_support)) { esw_warn(esw->dev, "FDB is not supported, aborting ...\n"); return -EOPNOTSUPP; } @@ -2164,11 +2165,34 @@ int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode, int num_vfs) return err; } -void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf) +/** + * mlx5_eswitch_enable - Enable eswitch + * @esw: Pointer to eswitch + * @num_vfs: Enable eswitch swich for given number of VFs. + * Caller must pass num_vfs > 0 when enabling eswitch for + * vf vports. + * mlx5_eswitch_enable() returns 0 on success or error code on failure. + */ +int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs) +{ + int ret; + + if (!ESW_ALLOWED(esw)) + return 0; + + mutex_lock(&esw->mode_lock); + ret = mlx5_eswitch_enable_locked(esw, MLX5_ESWITCH_LEGACY, num_vfs); + mutex_unlock(&esw->mode_lock); + return ret; +} + +void mlx5_eswitch_disable_locked(struct mlx5_eswitch *esw, bool clear_vf) { int old_mode; - if (!ESW_ALLOWED(esw) || esw->mode == MLX5_ESWITCH_NONE) + lockdep_assert_held_write(&esw->mode_lock); + + if (esw->mode == MLX5_ESWITCH_NONE) return; esw_info(esw->dev, "Disable: mode(%s), nvfs(%d), active vports(%d)\n", @@ -2197,6 +2221,16 @@ void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf) mlx5_eswitch_clear_vf_vports_info(esw); } +void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf) +{ + if (!ESW_ALLOWED(esw)) + return; + + mutex_lock(&esw->mode_lock); + mlx5_eswitch_disable_locked(esw, clear_vf); + mutex_unlock(&esw->mode_lock); +} + int mlx5_eswitch_init(struct mlx5_core_dev *dev) { struct mlx5_eswitch *esw; @@ -2248,6 +2282,7 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev) hash_init(esw->offloads.mod_hdr.hlist); atomic64_set(&esw->offloads.num_flows, 0); mutex_init(&esw->state_lock); + mutex_init(&esw->mode_lock); mlx5_esw_for_all_vports(esw, i, vport) { vport->vport = mlx5_eswitch_index_to_vport_num(esw, i); @@ -2282,6 +2317,7 @@ void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw) esw->dev->priv.eswitch = NULL; destroy_workqueue(esw->work_queue); esw_offloads_cleanup_reps(esw); + mutex_destroy(&esw->mode_lock); mutex_destroy(&esw->state_lock); mutex_destroy(&esw->offloads.mod_hdr.lock); mutex_destroy(&esw->offloads.encap_tbl_lock); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h index 752d399bdffb..39f42f985fbd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h @@ -258,6 +258,11 @@ struct mlx5_eswitch { */ struct mutex state_lock; + /* Protects eswitch mode change that occurs via one or more + * user commands, i.e. sriov state change, devlink commands. + */ + struct mutex mode_lock; + struct { bool enabled; u32 root_tsar_id; @@ -298,7 +303,9 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev); void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw); #define MLX5_ESWITCH_IGNORE_NUM_VFS (-1) -int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode, int num_vfs); +int mlx5_eswitch_enable_locked(struct mlx5_eswitch *esw, int mode, int num_vfs); +int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs); +void mlx5_eswitch_disable_locked(struct mlx5_eswitch *esw, bool clear_vf); void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf); int mlx5_eswitch_set_vport_mac(struct mlx5_eswitch *esw, u16 vport, u8 mac[ETH_ALEN]); @@ -674,7 +681,7 @@ void mlx5_eswitch_unload_vf_vports(struct mlx5_eswitch *esw, u16 num_vfs); /* eswitch API stubs */ static inline int mlx5_eswitch_init(struct mlx5_core_dev *dev) { return 0; } static inline void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw) {} -static inline int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int mode, int num_vfs) { return 0; } +static inline int mlx5_eswitch_enable(struct mlx5_eswitch *esw, int num_vfs) { return 0; } static inline void mlx5_eswitch_disable(struct mlx5_eswitch *esw, bool clear_vf) {} static inline bool mlx5_esw_lag_prereq(struct mlx5_core_dev *dev0, struct mlx5_core_dev *dev1) { return true; } static inline bool mlx5_eswitch_is_funcs_handler(struct mlx5_core_dev *dev) { return false; } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c index 84a38f0739d0..612bc7d1cdcd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -1592,14 +1592,14 @@ static int esw_offloads_start(struct mlx5_eswitch *esw, return -EINVAL; } - mlx5_eswitch_disable(esw, false); - err = mlx5_eswitch_enable(esw, MLX5_ESWITCH_OFFLOADS, - esw->dev->priv.sriov.num_vfs); + mlx5_eswitch_disable_locked(esw, false); + err = mlx5_eswitch_enable_locked(esw, MLX5_ESWITCH_OFFLOADS, + esw->dev->priv.sriov.num_vfs); if (err) { NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch to offloads"); - err1 = mlx5_eswitch_enable(esw, MLX5_ESWITCH_LEGACY, - MLX5_ESWITCH_IGNORE_NUM_VFS); + err1 = mlx5_eswitch_enable_locked(esw, MLX5_ESWITCH_LEGACY, + MLX5_ESWITCH_IGNORE_NUM_VFS); if (err1) { NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch back to legacy"); @@ -2397,13 +2397,13 @@ static int esw_offloads_stop(struct mlx5_eswitch *esw, { int err, err1; - mlx5_eswitch_disable(esw, false); - err = mlx5_eswitch_enable(esw, MLX5_ESWITCH_LEGACY, - MLX5_ESWITCH_IGNORE_NUM_VFS); + mlx5_eswitch_disable_locked(esw, false); + err = mlx5_eswitch_enable_locked(esw, MLX5_ESWITCH_LEGACY, + MLX5_ESWITCH_IGNORE_NUM_VFS); if (err) { NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch to legacy"); - err1 = mlx5_eswitch_enable(esw, MLX5_ESWITCH_OFFLOADS, - MLX5_ESWITCH_IGNORE_NUM_VFS); + err1 = mlx5_eswitch_enable_locked(esw, MLX5_ESWITCH_OFFLOADS, + MLX5_ESWITCH_IGNORE_NUM_VFS); if (err1) { NL_SET_ERR_MSG_MOD(extack, "Failed setting eswitch back to offloads"); @@ -2525,6 +2525,7 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode, struct netlink_ext_ack *extack) { struct mlx5_core_dev *dev = devlink_priv(devlink); + struct mlx5_eswitch *esw = dev->priv.eswitch; u16 cur_mlx5_mode, mlx5_mode = 0; int err; @@ -2532,40 +2533,50 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode, if (err) return err; - err = eswitch_devlink_esw_mode_check(dev->priv.eswitch); - if (err) - return err; - - cur_mlx5_mode = dev->priv.eswitch->mode; - if (esw_mode_from_devlink(mode, &mlx5_mode)) return -EINVAL; + mutex_lock(&esw->mode_lock); + err = eswitch_devlink_esw_mode_check(esw); + if (err) + goto unlock; + + cur_mlx5_mode = esw->mode; + if (cur_mlx5_mode == mlx5_mode) - return 0; + goto unlock; if (mode == DEVLINK_ESWITCH_MODE_SWITCHDEV) - return esw_offloads_start(dev->priv.eswitch, extack); + err = esw_offloads_start(esw, extack); else if (mode == DEVLINK_ESWITCH_MODE_LEGACY) - return esw_offloads_stop(dev->priv.eswitch, extack); + err = esw_offloads_stop(esw, extack); else - return -EINVAL; + err = -EINVAL; + +unlock: + mutex_unlock(&esw->mode_lock); + return err; } int mlx5_devlink_eswitch_mode_get(struct devlink *devlink, u16 *mode) { struct mlx5_core_dev *dev = devlink_priv(devlink); + struct mlx5_eswitch *esw = dev->priv.eswitch; int err; err = mlx5_eswitch_check(dev); if (err) return err; + mutex_lock(&esw->mode_lock); err = eswitch_devlink_esw_mode_check(dev->priv.eswitch); if (err) - return err; + goto unlock; - return esw_mode_to_devlink(dev->priv.eswitch->mode, mode); + err = esw_mode_to_devlink(esw->mode, mode); +unlock: + mutex_unlock(&esw->mode_lock); + return err; } int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode, @@ -2580,18 +2591,20 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode, if (err) return err; + mutex_lock(&esw->mode_lock); err = eswitch_devlink_esw_mode_check(esw); if (err) - return err; + goto out; switch (MLX5_CAP_ETH(dev, wqe_inline_mode)) { case MLX5_CAP_INLINE_MODE_NOT_REQUIRED: if (mode == DEVLINK_ESWITCH_INLINE_MODE_NONE) - return 0; + goto out; /* fall through */ case MLX5_CAP_INLINE_MODE_L2: NL_SET_ERR_MSG_MOD(extack, "Inline mode can't be set"); - return -EOPNOTSUPP; + err = -EOPNOTSUPP; + goto out; case MLX5_CAP_INLINE_MODE_VPORT_CONTEXT: break; } @@ -2599,7 +2612,8 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode, if (atomic64_read(&esw->offloads.num_flows) > 0) { NL_SET_ERR_MSG_MOD(extack, "Can't set inline mode when flows are configured"); - return -EOPNOTSUPP; + err = -EOPNOTSUPP; + goto out; } err = esw_inline_mode_from_devlink(mode, &mlx5_mode); @@ -2616,6 +2630,7 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode, } esw->offloads.inline_mode = mlx5_mode; + mutex_unlock(&esw->mode_lock); return 0; revert_inline_mode: @@ -2625,6 +2640,7 @@ int mlx5_devlink_eswitch_inline_mode_set(struct devlink *devlink, u8 mode, vport, esw->offloads.inline_mode); out: + mutex_unlock(&esw->mode_lock); return err; } @@ -2638,11 +2654,15 @@ int mlx5_devlink_eswitch_inline_mode_get(struct devlink *devlink, u8 *mode) if (err) return err; + mutex_lock(&esw->mode_lock); err = eswitch_devlink_esw_mode_check(esw); if (err) - return err; + goto unlock; - return esw_inline_mode_to_devlink(esw->offloads.inline_mode, mode); + err = esw_inline_mode_to_devlink(esw->offloads.inline_mode, mode); +unlock: + mutex_unlock(&esw->mode_lock); + return err; } int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink, @@ -2657,30 +2677,36 @@ int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink, if (err) return err; + mutex_lock(&esw->mode_lock); err = eswitch_devlink_esw_mode_check(esw); if (err) - return err; + goto unlock; if (encap != DEVLINK_ESWITCH_ENCAP_MODE_NONE && (!MLX5_CAP_ESW_FLOWTABLE_FDB(dev, reformat) || - !MLX5_CAP_ESW_FLOWTABLE_FDB(dev, decap))) - return -EOPNOTSUPP; + !MLX5_CAP_ESW_FLOWTABLE_FDB(dev, decap))) { + err = -EOPNOTSUPP; + goto unlock; + } - if (encap && encap != DEVLINK_ESWITCH_ENCAP_MODE_BASIC) - return -EOPNOTSUPP; + if (encap && encap != DEVLINK_ESWITCH_ENCAP_MODE_BASIC) { + err = -EOPNOTSUPP; + goto unlock; + } if (esw->mode == MLX5_ESWITCH_LEGACY) { esw->offloads.encap = encap; - return 0; + goto unlock; } if (esw->offloads.encap == encap) - return 0; + goto unlock; if (atomic64_read(&esw->offloads.num_flows) > 0) { NL_SET_ERR_MSG_MOD(extack, "Can't set encapsulation when flows are configured"); - return -EOPNOTSUPP; + err = -EOPNOTSUPP; + goto unlock; } esw_destroy_offloads_fdb_tables(esw); @@ -2696,6 +2722,8 @@ int mlx5_devlink_eswitch_encap_mode_set(struct devlink *devlink, (void)esw_create_offloads_fdb_tables(esw, esw->nvports); } +unlock: + mutex_unlock(&esw->mode_lock); return err; } @@ -2710,11 +2738,14 @@ int mlx5_devlink_eswitch_encap_mode_get(struct devlink *devlink, if (err) return err; + mutex_lock(&esw->mode_lock); err = eswitch_devlink_esw_mode_check(esw); if (err) - return err; + goto unlock; *encap = esw->offloads.encap; +unlock: + mutex_unlock(&esw->mode_lock); return 0; } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c index 10a64b91d04c..3094d20297a9 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c @@ -77,8 +77,7 @@ static int mlx5_device_enable_sriov(struct mlx5_core_dev *dev, int num_vfs) if (!MLX5_ESWITCH_MANAGER(dev)) goto enable_vfs_hca; - err = mlx5_eswitch_enable(dev->priv.eswitch, MLX5_ESWITCH_LEGACY, - num_vfs); + err = mlx5_eswitch_enable(dev->priv.eswitch, num_vfs); if (err) { mlx5_core_warn(dev, "failed to enable eswitch SRIOV (%d)\n", err);