From patchwork Tue Apr 2 13:54:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614143 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2070.outbound.protection.outlook.com [40.107.102.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 63E4565BBB for ; Tue, 2 Apr 2024 13:57:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066236; cv=fail; b=VxGknOVXOGGa6urnMYSk1xoTSfSvUmVK3g66pd4a7xKaGlsywGh0yUIJRCYLWE8+5i652pZXs2TJ1/0l3hVCVMYeOAtjUzLp0T1Thyn4Ld5yy/8g3fH9hVP50wrBUEB8eZkPorkrEhfDxhJs6WZds4+BHp9h1UwUY2ngBoLxKWg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066236; c=relaxed/simple; bh=6A0mQCgRHjrCgZXtKHapzmG8Q6F+Yv9A0+URSrfupaM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iyaPodopMa90oOkOsLwcVLSuYuKnH7BdXGjeU4uVzptOgrT/9qS4dWVVsQdyU3EvAhooKPWPAx4yHYmAz8QlvYp6AjjYi17ZGav3VQlJXEIyMueA8QMP2bFQZ0JGoMn/AOfCv8BTi3AgJJsR5FUuiQZTxcAKfX5X6wjNa1YWJ5w= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=hIpdJ7VA; arc=fail smtp.client-ip=40.107.102.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="hIpdJ7VA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lBlu4InJzeJQdFTlOTYlmWjkACLDSVa5ImHCuKExcPSgWXdH5+m/5PuAxiA6GRHXQON65UBG3S60Zq18+/zWoDSTknJ+MFCw14xiPC7pLN/GKx7p0c4Rrm+fU3GaPEJgQlo3YaI/HB6jtomwm3leDd9nTxBUNGR07R7rWxx+HAXZ6D/71pyo0aKfYPetaW2CU2Z6QlT+p/hxiU0sZjt8pFzHugYhRZIcz/GOKEWf1dKM4hu6goZsKVnpXCyBnHW8rmGVeJL2nUN/npdPDwz/1qrIAhvb8nt1qQFvwTmhVQ15YAvZAifcggvItWx7plU8yqDo9IeGgbhXDuHQf1k13g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0i/JNwRYzRv5nL6xrOADNA2u8iiMeOpjvfPuVNkHHjc=; b=ZyENE9neZCPfMLN3c7bkOmbMTUFPq0g62LoOvSjpssvNupXJmccvYrDxz9PI0SLz4g3NojDK5YvpzqdCBlMfjHS8yXDXFUcfkTzTUzjqn2qqk1T7m9IRAlJvyHofaK2zlsdbk/Ds7q9KQ/fl5fqYS/q9TKw/7pLdtfHVVGnvddZdn2yEGmvZAozYBozPpAGjGoEHa6MCHcCwoqfHIXGcKyjf9Ssa1dZ6AchgjXqgqW9iDCPqD8q8tlr7qX1Zjl5V9hAvy5Iia2/tU95vxUHLOiUV0GLRa6zm/ulsgW11G/dLA1bjQGSA0h3z8S0N1cSc+aectqmVqLuOs2F5MZ0pzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0i/JNwRYzRv5nL6xrOADNA2u8iiMeOpjvfPuVNkHHjc=; b=hIpdJ7VA6KsdDf0H10YFOB40m+SqspefgE73JwJVb6eCbXAeJ5vFFuTVYQjU52qA5JGzhD/KSoQfa+KiKKslaFJgQCBtsKMPNxksCu5NuqgQPGGZFtS7xpSP6NJ/qIf6JV5a3E4zUAo2wLZE/GLjfcMP7maG15RxHhMxEYv0Co1Myc21ElqAkXQSk7RoUuKr/bLCodDmt6FKmzP5FPKhmHbeL1EWnfoIGowCWIGwbRvix+1WuC8ZR+mpHTpC6AwGaQGHE3euZSaJL6mNvrR/wXlXBbad4e2UUFqc83XjBQ68U49boGF5uHe9dM84ec+2SL+TLtMIcxzFMDLmCNXoRA== Received: from CH2PR14CA0016.namprd14.prod.outlook.com (2603:10b6:610:60::26) by DS7PR12MB5813.namprd12.prod.outlook.com (2603:10b6:8:75::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:10 +0000 Received: from CH2PEPF0000013E.namprd02.prod.outlook.com (2603:10b6:610:60:cafe::4a) by CH2PR14CA0016.outlook.office365.com (2603:10b6:610:60::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46 via Frontend Transport; Tue, 2 Apr 2024 13:57:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013E.mail.protection.outlook.com (10.167.244.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:09 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:56:55 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:56:51 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 01/15] mlxsw: pci: Move mlxsw_pci_eq_{init, fini}() Date: Tue, 2 Apr 2024 15:54:14 +0200 Message-ID: <7ae120a02e1c490084daae7e684a0d40b7cce4e7.1712062203.git.petrm@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013E:EE_|DS7PR12MB5813:EE_ X-MS-Office365-Filtering-Correlation-Id: 9dab07e9-2bc9-4274-c0a0-08dc531cca4c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bRY5ZJRSDYrt7WviZTJpyOXhRm2GnoApFQHwF4NnlPfC9LGeK7YAgoV4ubGCbBr6JzXwfI4d9jW94ttKD6Sexe1wC7iq95BAxgZuGhhIrmhDAkRZEDOADtY0Zo0S+L8Z98gmU4r079favS8g7EPYYPxb0sPZI7CGPJDu3vB3F2mr+v99pel3GRbtCM01us35DhIvhxQncdPSDLGvGKekOp79Z+Xl5YztoT8XUN/0DHWE3H4lYRwZe26rCKL04vmrPiWym0FoRiiDanoTKxjj4j8JrJRSNvgHf7BF3hrdKHGhOH48PHHBdG5K/LCLmNs7+1BT9hHNJh9wv7fe6HrV5UBXJpXZVqnaTq8p0b0lBDHcH/NjsIRJ6U2n6LR6XJCPmhULhoz9y95D0aDwkJbjdqwMTbvi3zGkEH6X1gQwmkVooIUz0VPgFcU2Aqu+GwTSrkbFOr+6jgRSyehlkpWcLWmZ5yqP7dP5LUOX6AL0PCJXx2oDoXrRlhXll2gWXfu/oyhBUIVsqacZomuJN3pscalCnIT9B8P+T/9obj1XCJeQqdT8l5Ly+JY8rVwpZBwd6OwkmptkCgaoB+ZpBKiOjgrORYx7XDidMf/yEvH06XEI6RcC63PWprEtrciJFtx4Zkzjj3Vaw59gMI1CX1GrCTXzSsCh/5fcN1RLmG5NLPakre2s8z8uiPwANoD1F4QI73eDoOJ6Vvc7vZYDbtDih0Ym2qcw7pSfjGKaRTrx9weyf6JQzBHqQt7WBsdb0xb+ X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(36860700004)(1800799015)(376005)(82310400014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:09.6422 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9dab07e9-2bc9-4274-c0a0-08dc531cca4c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5813 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Move mlxsw_pci_eq_{init, fini}() after mlxsw_pci_eq_tasklet() as a next patch will setup the tasklet as part of initialization. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 72 +++++++++++------------ 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index f42a1b1c9368..93569b14b357 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -765,42 +765,6 @@ static u8 mlxsw_pci_cq_elem_size(const struct mlxsw_pci_queue *q) MLXSW_PCI_CQE01_SIZE; } -static int mlxsw_pci_eq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, - struct mlxsw_pci_queue *q) -{ - int i; - int err; - - q->consumer_counter = 0; - - for (i = 0; i < q->count; i++) { - char *elem = mlxsw_pci_queue_elem_get(q, i); - - mlxsw_pci_eqe_owner_set(elem, 1); - } - - mlxsw_cmd_mbox_sw2hw_eq_int_msix_set(mbox, 1); /* MSI-X used */ - mlxsw_cmd_mbox_sw2hw_eq_st_set(mbox, 1); /* armed */ - mlxsw_cmd_mbox_sw2hw_eq_log_eq_size_set(mbox, ilog2(q->count)); - for (i = 0; i < MLXSW_PCI_AQ_PAGES; i++) { - dma_addr_t mapaddr = __mlxsw_pci_queue_page_get(q, i); - - mlxsw_cmd_mbox_sw2hw_eq_pa_set(mbox, i, mapaddr); - } - err = mlxsw_cmd_sw2hw_eq(mlxsw_pci->core, mbox, q->num); - if (err) - return err; - mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); - mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); - return 0; -} - -static void mlxsw_pci_eq_fini(struct mlxsw_pci *mlxsw_pci, - struct mlxsw_pci_queue *q) -{ - mlxsw_cmd_hw2sw_eq(mlxsw_pci->core, q->num); -} - static void mlxsw_pci_eq_cmd_event(struct mlxsw_pci *mlxsw_pci, char *eqe) { mlxsw_pci->cmd.comp.status = mlxsw_pci_eqe_cmd_status_get(eqe); @@ -877,6 +841,42 @@ static void mlxsw_pci_eq_tasklet(struct tasklet_struct *t) } } +static int mlxsw_pci_eq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, + struct mlxsw_pci_queue *q) +{ + int i; + int err; + + q->consumer_counter = 0; + + for (i = 0; i < q->count; i++) { + char *elem = mlxsw_pci_queue_elem_get(q, i); + + mlxsw_pci_eqe_owner_set(elem, 1); + } + + mlxsw_cmd_mbox_sw2hw_eq_int_msix_set(mbox, 1); /* MSI-X used */ + mlxsw_cmd_mbox_sw2hw_eq_st_set(mbox, 1); /* armed */ + mlxsw_cmd_mbox_sw2hw_eq_log_eq_size_set(mbox, ilog2(q->count)); + for (i = 0; i < MLXSW_PCI_AQ_PAGES; i++) { + dma_addr_t mapaddr = __mlxsw_pci_queue_page_get(q, i); + + mlxsw_cmd_mbox_sw2hw_eq_pa_set(mbox, i, mapaddr); + } + err = mlxsw_cmd_sw2hw_eq(mlxsw_pci->core, mbox, q->num); + if (err) + return err; + mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); + mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); + return 0; +} + +static void mlxsw_pci_eq_fini(struct mlxsw_pci *mlxsw_pci, + struct mlxsw_pci_queue *q) +{ + mlxsw_cmd_hw2sw_eq(mlxsw_pci->core, q->num); +} + struct mlxsw_pci_queue_ops { const char *name; enum mlxsw_pci_queue_type type; From patchwork Tue Apr 2 13:54:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614146 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2079.outbound.protection.outlook.com [40.107.237.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E10884FC5 for ; Tue, 2 Apr 2024 13:57:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066248; cv=fail; b=rz2g67pcCubsZT91mWxa69COl2RB1+VX9lpx0hA653wH+abvmnxjYFCi9yzDPQHp0GZSis0EVvAnEvAjLV2jQisri/vxZpy1L8SjQsQQq1qAqWYXglHgNKhAjVw9c8AfISMzhNUKSxFfSgCZq8UAhwIW69sPUVJq1j5O7WM4z58= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066248; c=relaxed/simple; bh=9LsF+kRKibiU4PS/Sm+q0IFPFvLHUQsvbA3VfxOYOZU=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=VcUxYuTK2YG5asrWYmjdT18+Z2InXVs9iOqm5VwjN3NUvGC8WSL6uVKZcIqB7cVkmP0seY7MXfIUS+E+RsSyL7evHhYYBr7R3XTvf9vNKQi3M2HlWuixwfyaIv23vXERc5ITa1GKC5HhmdPOEPY62KnjEnnC8X4mxHh/xkyk5cs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=txGYHLmp; arc=fail smtp.client-ip=40.107.237.79 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="txGYHLmp" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Sb823KL/yBM0Bf1cEr2H5fN+s9AVpjt1Z4e+9HoUQqwiqa8b1LMMfkc/ObzgdsbLz1BqIe/ywlB+IpAvpNbHDMZEOD7zml2+X6Skk6tsVHfoZzYXgd8lIfLha9h4chsr3LcVdxwGIbP9h6WeNSudm6aS3vgyjwQsRAE7htg5e7yUeNg0VVKuDw/4i5KWEV3co9NBw2WqXDDEewacBzCNia/BE4/uFem7apCMc6Vt2IyvCx9yAf8eONLFOO/tNbXYBkxRm7fuDjaAtzikC94nuR3yai1B8ihxBpBDewVhSy6T+urO1s6xAbrZDJi24Vu88moIGrIxO48S0ynu5H28FA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5TXBqPP4DvaFeGiOITihRAXxJb+TyoqLtPea6VhGfv0=; b=n3gfcR2vzT5ftfuGMm/n7q+lbTkwZmCiPk7ZC7GVk7qCj7e0HX495owQkCBDtpmnnQGoY+wUdgt1r+2pdVVpHxrG20zrOPCGkGiBQlsQF5daIyosHAG7ptKHLpqjY9p8/F8xeJFR7/6HlrCYUZ+lGBGJSX678+CW70mCZ1ukpuT76+LsTmACGa/0z5vvNJ6S1rf6bwM4TpgbtuNLoSNChqafvwuJAA6YhHe1vEDb1dfFY+SSxum78FYv9/reBIprZlQMe5uz4BAM10Hz9gtanFMOguWUAMqH4+Bnj9lcaLM0FHu3MIfy3Nyng6MMtrvh8n2K9iRdVPG6V1CWLlXkWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5TXBqPP4DvaFeGiOITihRAXxJb+TyoqLtPea6VhGfv0=; b=txGYHLmpXdKe1lpeXJ+K212T0cgzIhFN175dSBN0t/3IVj9MuYfwCP4xlJN6VIAmUeAdLz0IhdFGopOOfoFU7JGJ0ilB0IiWhCfrWd9BOZ5ZRNiAj7BUL/IfE1t6OZVItLq4CV9sXptDvSDlqUVbSpjQQrzPnS+cvbVaSKw+i3XodCmfEuMI5XDQlDOHiHNO3bszz+JSNUs3GmuLOOJcm3pBIe2pahG2eq+ggX6j+fKXwDx0yNmCK5My9dAr5Io/cPWi9PHpsbszKkTSuQ/TSqXMv77dgiR+9vvDnhylqQux3zmEKaHI/TxLYN4UNxwDyv1igIdn3EnoXX9N5zs0XA== Received: from SJ0PR03CA0192.namprd03.prod.outlook.com (2603:10b6:a03:2ef::17) by DS0PR12MB6582.namprd12.prod.outlook.com (2603:10b6:8:d2::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:12 +0000 Received: from SJ1PEPF00001CE4.namprd03.prod.outlook.com (2603:10b6:a03:2ef:cafe::29) by SJ0PR03CA0192.outlook.office365.com (2603:10b6:a03:2ef::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.34 via Frontend Transport; Tue, 2 Apr 2024 13:57:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00001CE4.mail.protection.outlook.com (10.167.242.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:12 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:00 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:56:55 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 02/15] mlxsw: pci: Move mlxsw_pci_cq_{init, fini}() Date: Tue, 2 Apr 2024 15:54:15 +0200 Message-ID: <25196cb5baf5acf6ec1e956203790e018ba8e306.1712062203.git.petrm@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE4:EE_|DS0PR12MB6582:EE_ X-MS-Office365-Filtering-Correlation-Id: 3846c0dc-f5d3-4eea-0787-08dc531ccbc4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YfWbyn96/lH2zRDdUazoC+BAU6mMff0dzRDFP5CyL/KSEHnogpGdPezuyfRzLQ5U1t93GP+B4cieymFSX9KbcjH680yCNjwVsIipaeCSOqd6UvPsup736RjuJMmVIeyUlTO6J6i+1yvOhScfncNxsL81F3nW+oKJuB7onxEh3zOOuEp4wwz4g3LSlMUHOkfL4GJn6+LuOq78xx0li1t2ATSUkrHTFBhc/ewCf6tFT2vxtPh8g/MWdVppKmZFSGGhnAoJ55+VoS+CjHWYaRhY4xzeleuLV6Hm//Z6EYSAAvXbYFHNAKcEStJ8Uvgf/590ZtqcY6I72FInhfqQLXuFy95zFeRxi1RLqN4ZbM6lXEs87rq2r+sChRUXd/W/eJyEee9LNLSDMd5712+JJpvSxX4hfSwtOZUYiWLUe97fX71qhioXmQZxb3D8qWxmsshKtROHQMDi6PdreGp1Rok6mgF6G8UzRGqJUHqrGEENYMDu0RZPIgYBd4LG2eo39M7JO2F6naHTZR6KtAMK03gByw6g4ZrPUvXpQU28Io79EmwnsXpiTtvWEdDkYoYIt8sZk4rnb5ZH4ULcrI62tVhIvUDVEKXI6ARQCqAgsg/Dmz19FcNGmJ9afPLRHn3wkbVegLx0PlutKLD6mdmWkx+tZ+SAYMj7Aq47JdLbF0dRBgqMjUvHghPWEVjrFVQO3PzCv+j3J1MPZSlC03CsVuqvgVO6v6XfGCZbRwieM/YXLilGIsUOdTDWwOZ4lN9hKfQ+ X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230031)(36860700004)(82310400014)(376005)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:12.2110 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3846c0dc-f5d3-4eea-0787-08dc531ccbc4 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CE4.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6582 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Move mlxsw_pci_cq_{init, fini}() after mlxsw_pci_cq_tasklet() as a next patch will setup the tasklet as part of initialization. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 86 +++++++++++------------ 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 93569b14b357..97c5c7a91aea 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -470,49 +470,6 @@ static void mlxsw_pci_cq_pre_init(struct mlxsw_pci *mlxsw_pci, q->u.cq.v = MLXSW_PCI_CQE_V1; } -static int mlxsw_pci_cq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, - struct mlxsw_pci_queue *q) -{ - int i; - int err; - - q->consumer_counter = 0; - - for (i = 0; i < q->count; i++) { - char *elem = mlxsw_pci_queue_elem_get(q, i); - - mlxsw_pci_cqe_owner_set(q->u.cq.v, elem, 1); - } - - if (q->u.cq.v == MLXSW_PCI_CQE_V1) - mlxsw_cmd_mbox_sw2hw_cq_cqe_ver_set(mbox, - MLXSW_CMD_MBOX_SW2HW_CQ_CQE_VER_1); - else if (q->u.cq.v == MLXSW_PCI_CQE_V2) - mlxsw_cmd_mbox_sw2hw_cq_cqe_ver_set(mbox, - MLXSW_CMD_MBOX_SW2HW_CQ_CQE_VER_2); - - mlxsw_cmd_mbox_sw2hw_cq_c_eqn_set(mbox, MLXSW_PCI_EQ_COMP_NUM); - mlxsw_cmd_mbox_sw2hw_cq_st_set(mbox, 0); - mlxsw_cmd_mbox_sw2hw_cq_log_cq_size_set(mbox, ilog2(q->count)); - for (i = 0; i < MLXSW_PCI_AQ_PAGES; i++) { - dma_addr_t mapaddr = __mlxsw_pci_queue_page_get(q, i); - - mlxsw_cmd_mbox_sw2hw_cq_pa_set(mbox, i, mapaddr); - } - err = mlxsw_cmd_sw2hw_cq(mlxsw_pci->core, mbox, q->num); - if (err) - return err; - mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); - mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); - return 0; -} - -static void mlxsw_pci_cq_fini(struct mlxsw_pci *mlxsw_pci, - struct mlxsw_pci_queue *q) -{ - mlxsw_cmd_hw2sw_cq(mlxsw_pci->core, q->num); -} - static unsigned int mlxsw_pci_read32_off(struct mlxsw_pci *mlxsw_pci, ptrdiff_t off) { @@ -753,6 +710,49 @@ static void mlxsw_pci_cq_tasklet(struct tasklet_struct *t) mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); } +static int mlxsw_pci_cq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, + struct mlxsw_pci_queue *q) +{ + int i; + int err; + + q->consumer_counter = 0; + + for (i = 0; i < q->count; i++) { + char *elem = mlxsw_pci_queue_elem_get(q, i); + + mlxsw_pci_cqe_owner_set(q->u.cq.v, elem, 1); + } + + if (q->u.cq.v == MLXSW_PCI_CQE_V1) + mlxsw_cmd_mbox_sw2hw_cq_cqe_ver_set(mbox, + MLXSW_CMD_MBOX_SW2HW_CQ_CQE_VER_1); + else if (q->u.cq.v == MLXSW_PCI_CQE_V2) + mlxsw_cmd_mbox_sw2hw_cq_cqe_ver_set(mbox, + MLXSW_CMD_MBOX_SW2HW_CQ_CQE_VER_2); + + mlxsw_cmd_mbox_sw2hw_cq_c_eqn_set(mbox, MLXSW_PCI_EQ_COMP_NUM); + mlxsw_cmd_mbox_sw2hw_cq_st_set(mbox, 0); + mlxsw_cmd_mbox_sw2hw_cq_log_cq_size_set(mbox, ilog2(q->count)); + for (i = 0; i < MLXSW_PCI_AQ_PAGES; i++) { + dma_addr_t mapaddr = __mlxsw_pci_queue_page_get(q, i); + + mlxsw_cmd_mbox_sw2hw_cq_pa_set(mbox, i, mapaddr); + } + err = mlxsw_cmd_sw2hw_cq(mlxsw_pci->core, mbox, q->num); + if (err) + return err; + mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); + mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); + return 0; +} + +static void mlxsw_pci_cq_fini(struct mlxsw_pci *mlxsw_pci, + struct mlxsw_pci_queue *q) +{ + mlxsw_cmd_hw2sw_cq(mlxsw_pci->core, q->num); +} + static u16 mlxsw_pci_cq_elem_count(const struct mlxsw_pci_queue *q) { return q->u.cq.v == MLXSW_PCI_CQE_V2 ? MLXSW_PCI_CQE2_COUNT : From patchwork Tue Apr 2 13:54:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614145 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2067.outbound.protection.outlook.com [40.107.223.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A99065BBB for ; Tue, 2 Apr 2024 13:57:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066246; cv=fail; b=iJjP2+EJZ6WK/AuK3vyKHAevD38J+f5jnpSeRf8VmFrPIdwMCUT1CyiJs9xQk8HH7YJwoBRfq7HR8dnIPg6hA7lma5+0wJCCKp4J5Bfi5vgYuuFsvIigkIQcf9l4VFbRD3W24eeBVEV4RhuzJ+T3zeVYjKX5MN8a181X6CM0Ez8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066246; c=relaxed/simple; bh=lFI6j9/8SeqvFW5LCR4aYcDDIubVb1ogVaHDUyE/iFQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=YVuKVyVfZ3ZVRa7vGcYL/9axWhXuK06qDzoWm6h7JBFcrjvPGuZiPiRxttdqxRUu6/rE6yxEE8s3SyvtAD4yFqiUGKrgKOBqfye1+7NrJj4jtbNDbXBzA3QyDEQSQC8ztuSTU+TIDFLrhCLNxVBljNkEqp4fXkSr3L6NGrcoDbs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=jvJtcOGI; arc=fail smtp.client-ip=40.107.223.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="jvJtcOGI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cNs08nKO28+CKMsKHX1YMs49cUotqYnhKD8vghx0WbA2lQYFHjxrNAh/QBXkrr4bHNSD+rG6inuuj9Y7P/be/1R10IDf2JT+sm1WkvvdzYkIeRi7zRC1PEUSY92MvJlB4GS7saflJz9MR7Yu2LXoQrGMxQ1uPx9Y6WPqAUCMD/OSGrLyol5ogL2GitkaOqexUVSxjXwCxna5r0/hsgZxbRN1e9/Hp9Hg1tcPbg4lHzOmq3V5XfM7xvqEO3zTF57SLh4ViM7u4Kjzz3syJlWGR8QKiMgyy5gPk0HN97uLD8XW+SA2/HuwnH5nXs+fZ8uRZqo4VcL87RLN5jx6SvXc3g== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=aRK2UZwjrjybNFnUPq80yRJx7wGhcSL7h0yBEyb4cYI=; b=XAhaymCveBCVW6LtX/ubJezVITjeJlDFewrrAZUnTH96BN8KlB9ob21M9sHr0m4O0RVAdqw0Rxexi6d6ksmmX0uQwQwZ/ZkIus8SSan9EMVBTbicDU2/xkgUIgQn+1LtbBpe/GztlOl3swv7L57eXVH0d72r7Z4wvu8FvxCF/VYM3/iqk/WPSm0oy/yPrCdux1EODd/qPyJR8gbZ24ySmxKph2t8uzoZCh5rwXCEytOQ1qa+6avrXUTo/I/ulEaUv06zhdSLAik9xbRQwIoBGnEhNlCCDeE03O5+MmDGfQRTsLYuy3QCzYUgmvlO779OFAppUGtKLuDw7iLyJaIsxw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aRK2UZwjrjybNFnUPq80yRJx7wGhcSL7h0yBEyb4cYI=; b=jvJtcOGIwoIHmpFJB/gjG2eGI29HjA/DI6LLXEtvwoTION+hdsqtRat1Jl/dsLYpi4LnF6qcPI5U3akJX1TLIEFTg/vjiETbdiyXTYn6heq3L9NPazC+NclrUD5S4WLPDbe79goNh3NYYV0AYTX3tGRC4/P/SUPp0MLlZy3W1B51YeBGHxFobTQatiETtpVNj1t4as4oIJ4Xl4UFRrRBkIlfCBFdiiXxZjnzkz93sEa3IIy8KsyWriiC+25yuFIWYZ6OvHooOuxnn+QYJAAlpsHNRhSLKpR7q0FDSkcd3+tBWxaPIclvLOlC7Uy2Zrk007HdvWY6amRNe5G2YMtSnA== Received: from CH0PR03CA0037.namprd03.prod.outlook.com (2603:10b6:610:b3::12) by PH7PR12MB7137.namprd12.prod.outlook.com (2603:10b6:510:1ed::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.45; Tue, 2 Apr 2024 13:57:20 +0000 Received: from CH2PEPF0000013B.namprd02.prod.outlook.com (2603:10b6:610:b3:cafe::d1) by CH0PR03CA0037.outlook.office365.com (2603:10b6:610:b3::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.48 via Frontend Transport; Tue, 2 Apr 2024 13:57:19 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:19 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:03 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:00 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 03/15] mlxsw: pci: Do not setup tasklet from operation Date: Tue, 2 Apr 2024 15:54:16 +0200 Message-ID: X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|PH7PR12MB7137:EE_ X-MS-Office365-Filtering-Correlation-Id: 1e540061-2175-4ee0-1ffe-08dc531ccffa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bubUDuCbrLCWGPTVcqxhxr3UMpvGClTByz4z5d1ZG4FpdEOOWXNo4kES/cB4sdzd58+wKYity0yn4Xfz1Zbo6LtO6VqR6T4pud27XFmcxiAUa1vwScHFrGHZrNWATqs/hnZY2WIpeipLlNactE8zsk8AM/fa2CW4YpE85zLJ2GZVzNy2XH8gvC8G+lhE3X5dfES1HH4AZsD5SA0yRio28ibPvqjIg/P6OuSQD/C+OLo76++QB/sExfj5/WIhh11d6F36KCPLfQUbGYhtwxz4INF6zJmcfY84Y8Ugxf9lg/4kVKFX15xWDyTlt+X0rTRaEroNXFlJgcBbBD2ek0Qv7WcTTkYbArmdO/Ymmtq8ig32XZUOn02x+BDhRjgTxV3cCrUkiYuQKum+j3/NFP6G4eFy+hKggJ/BLDDOwS4RaPkl3TbbzvvFTuG/j2VLyc17tck5vUwdNGGdS1sKgS9yJuMdRJV3yYwAHwyjdaIqJ68KekZoy6j8AI9n3q7HMDzKZwAYa07FlWu3C+YYLPNAxckGc3G1PVsX0PhAVruaPhXnedTqxOH5Gx/t5kRlJpAZte8yUA/ahVWbhQqqJlxHvRa2u7h4qYQsA1LHdO21xOLOgmP3YRXmewqBGgq9IO+GgW7l5NCvEoWe3GHp5SlxHv62MRXRja5CNayrBQ50wLQWm39KrsDTn4Zp5GinudXbrnWOS7YAYF3uLei/0qB3yisRY5+/4HITLCJKU4GahOfEDdnPDjK7JyOO8psMps8d X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(376005)(36860700004)(82310400014)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:19.1670 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1e540061-2175-4ee0-1ffe-08dc531ccffa X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7137 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Currently, the structure 'mlxsw_pci_queue_ops' holds a pointer to the callback function of tasklet. This is used only for EQ and CQ. mlxsw driver will use NAPI in a following patch set, so CQ will not use tasklet anymore. As preparation, remove this pointer from the shared operation structure and setup the tasklet as part of queue initialization. For now, setup tasklet for EQ and CQ. Later, CQ code will be changed. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 97c5c7a91aea..2031487a9dae 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -742,6 +742,7 @@ static int mlxsw_pci_cq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, err = mlxsw_cmd_sw2hw_cq(mlxsw_pci->core, mbox, q->num); if (err) return err; + tasklet_setup(&q->tasklet, mlxsw_pci_cq_tasklet); mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); return 0; @@ -866,6 +867,7 @@ static int mlxsw_pci_eq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, err = mlxsw_cmd_sw2hw_eq(mlxsw_pci->core, mbox, q->num); if (err) return err; + tasklet_setup(&q->tasklet, mlxsw_pci_eq_tasklet); mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); return 0; @@ -886,7 +888,6 @@ struct mlxsw_pci_queue_ops { struct mlxsw_pci_queue *q); void (*fini)(struct mlxsw_pci *mlxsw_pci, struct mlxsw_pci_queue *q); - void (*tasklet)(struct tasklet_struct *t); u16 (*elem_count_f)(const struct mlxsw_pci_queue *q); u8 (*elem_size_f)(const struct mlxsw_pci_queue *q); u16 elem_count; @@ -914,7 +915,6 @@ static const struct mlxsw_pci_queue_ops mlxsw_pci_cq_ops = { .pre_init = mlxsw_pci_cq_pre_init, .init = mlxsw_pci_cq_init, .fini = mlxsw_pci_cq_fini, - .tasklet = mlxsw_pci_cq_tasklet, .elem_count_f = mlxsw_pci_cq_elem_count, .elem_size_f = mlxsw_pci_cq_elem_size }; @@ -923,7 +923,6 @@ static const struct mlxsw_pci_queue_ops mlxsw_pci_eq_ops = { .type = MLXSW_PCI_QUEUE_TYPE_EQ, .init = mlxsw_pci_eq_init, .fini = mlxsw_pci_eq_fini, - .tasklet = mlxsw_pci_eq_tasklet, .elem_count = MLXSW_PCI_EQE_COUNT, .elem_size = MLXSW_PCI_EQE_SIZE }; @@ -948,9 +947,6 @@ static int mlxsw_pci_queue_init(struct mlxsw_pci *mlxsw_pci, char *mbox, q->type = q_ops->type; q->pci = mlxsw_pci; - if (q_ops->tasklet) - tasklet_setup(&q->tasklet, q_ops->tasklet); - mem_item->size = MLXSW_PCI_AQ_SIZE; mem_item->buf = dma_alloc_coherent(&mlxsw_pci->pdev->dev, mem_item->size, &mem_item->mapaddr, From patchwork Tue Apr 2 13:54:17 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614147 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4742384FD6 for ; Tue, 2 Apr 2024 13:57:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066248; cv=fail; b=Td+8EE/LUB//mykMQK/rig0tZ1e8kYcunsC0no/Tjrly0RvBvLq0uKCY32kHC8xdqvHKMIDOgR/L+L3DgkJUPsAXSDi4QMmxdRKR4h61EeTnEfJGnhHLWXd3iRQ2Kz9DIFmXMwd6kKwjdwLP8R5fvqE20eI94J0ps/AIMYLmlZs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066248; c=relaxed/simple; bh=YhQb6EK7HROvBzAwntbC5rAcitrqp0RUpXtw9OfBXKA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=oB3IUAihjH2l66p4uLdObjDCAgl5+Y11ChJHlYnp/iTHqizdpLN6J7vXGR9IXubYUofukqFgLH3FV9MMUjEAg4Z48DoSVv78lv3vFchQUjZLqF6zdvh2XR75d3Iz0LLecrNNN4/2WMKrz9zD3WqH0KDjIcM0JGVjxvE9tK2Vg08= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=QElCn6Xo; arc=fail smtp.client-ip=40.107.236.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="QElCn6Xo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n1qFoBexVT0cHt9xuQF/esPug8cJgNGzLFvJxFhZ7K74Yv+eqYbCyI8cQwGlQ0IRHCgwje9dq8Bx7YHkDnQQSAZ9/97SOh5NRQy1g7StROEi3OQbHyBMvSjMlITSGk7Gwht4hofQmAgyclZngoa8lJEUm3Z1mEhlQTBKe40uAzQOVcDnikBaEuIsGHzyUPvmKO1Dnjp/MC46Ex6uEPzDdhDr+1DCwL02E8QLKrUX4jzoQ+TZYRKANvRpPNgzjgc0ujE0RUY0I58bVHNFFud1AhjOxIUuIw1Obl8Y4V+eG+B/AkTLAZiNQAh83cCYadAj9RWRaJkm3ncmtIHxCOJ64Q== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=B5shGxQ5DSGMbALQ4dKNCZ3FFMmiJ6aZN7ImjB5HStM=; b=cI53LeUvH3NziWXWrLRIalaRYmlDp8IDwFxqm0k5TjFRz5DPlet5B8dFvxoZly1CsVBmdPAbJHeu97TNQHmGjIumRDU4JdXm+p61Aj1igwQdCHZAdZ6+TENvPwEjGZZplE2I56YTQplRU3NEVlNmPF/JkqWMDMRo7/3Eohe0pYyTbBfhcmPNPNj+dBaklcf8y9+sgq6643DnWxGl2qU8ykDdWULtUD9AKHOKzWleJsgUNMpZmf9M5PdPmVGrJah+AadI6rz2IMny12nwiRv2NUY/hXAAy4HoACOo3em+OjIBTCBBxsm/Ig0SEHSGhQjPJVbk6ITQ+kqqd48n6H6+tg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=B5shGxQ5DSGMbALQ4dKNCZ3FFMmiJ6aZN7ImjB5HStM=; b=QElCn6XoJi2kzZtGUoVm+oCbdvlb8S11++sSFlWuycOQK6KskQVlboaIBY+L59N9l8FFevp7tQ6inLz89/hQRVIhwk0p6ckOwgAQ4Rnnxojxx1FdaaO819y5MjKlHJMz88X8BqlMH9q9AFRKhuusf6i0NeU51yFiayJtlqY6bkApUuyJwXuegazbhXNjDwvQJ84Q7cL7f0hv1jMSUEYCfQSv2Qlr+JSq2BI51+hLGEscSklq2NaEmvT4sEH3pR87pEOy3Z/8avqoKU8+x/d0vh0XH/tGyQ3+ZLJatrkh+div6ciS3FhFy6icBxamSpcMG26YdllIcYi++FKllJCIvA== Received: from BYAPR06CA0006.namprd06.prod.outlook.com (2603:10b6:a03:d4::19) by SJ2PR12MB8691.namprd12.prod.outlook.com (2603:10b6:a03:541::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:23 +0000 Received: from SJ1PEPF00001CE9.namprd03.prod.outlook.com (2603:10b6:a03:d4:cafe::69) by BYAPR06CA0006.outlook.office365.com (2603:10b6:a03:d4::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46 via Frontend Transport; Tue, 2 Apr 2024 13:57:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00001CE9.mail.protection.outlook.com (10.167.242.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:22 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:08 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:04 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 04/15] mlxsw: pci: Arm CQ doorbell regardless of number of completions Date: Tue, 2 Apr 2024 15:54:17 +0200 Message-ID: X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE9:EE_|SJ2PR12MB8691:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ac679ce-a34b-480f-0cfd-08dc531cd205 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5X0bRyBZc8wXIrjw44jjfJzBPIys78hAUzJCpdSpA6hGOFYTK+0G0vjqj/oyD3WB6Ko3tAcLGxXDj0QdVW1SRvht0TbTA+0njk2rz15/+nQyw7F8I1o4MT8rAGlxuruiWWDaq9fbHaJDPTratlhRhN6Hn/gTP70DLff5vE9fWQinduF4Osb3C5gpxSXaIRo8KLD1LcUKQjugKdAYMKak+s3MNmEgcmU9X6Mu9+AutEuK4sbJHzutLD9GHpWCa6Ih6QaxX4wPlTAN1+GdFW6U+K1C1tqRi224MjUDOpkFS5Lh5iWvB5/BnJyKarCGZKhLlsMbft7h2Hz8l3AqW/3pc3yR17yLiVbkXtr5MTQk+Y7HRh83D2Km+ms6GehRN53pnJ/Y2ZQ6ZaHXM2yH6jBhqZe/Kpzs2zRYDWnzd9w6mDG4tfpBJj2xQAg9gW0RLzXj8kA/MvrT9A8W8DrZ5YcI5FRWihA71FKeg0cGbkybHtB+fAcluhWY0DiNgF1kntgD7Si8p0sVgmy4d5Cg7bMjT7XB2bJ7OeaU0A4wca1CJ4Jsm+pMAKympnAmR9Y1NbzUXITaqS6sLsXUD+PlHtITrUdLuG4DsyCD5WgmGlgnvYoFzYPilIgfwdvYkiJihYP08E26BQp55xxK401M7i02CHiNjkvWWlv+zS/aIT4MQcY0s46rneAFMo7SgM+2jn92tzkdWwtZTeiX89/R9iGWjmyVpzpR3pRr8nCiPhA6rRdEy/TbZNklTqm7wp9Le40C X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230031)(36860700004)(82310400014)(376005)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:22.7035 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ac679ce-a34b-480f-0cfd-08dc531cd205 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CE9.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB8691 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Currently, as part of mlxsw_pci_cq_tasklet(), we check if any item was handled, and only in such case we arm doorbell. This is unlikely case, as we schedule tasklet only for CQs that we get an event for them, which means that they contain completions to handle. Remove this check, which is supposed to be true always, and even if it is false, it is not a mistake to ring the doorbell. We can warn on such case, but it is not really worth to add a check which will be run for each CQ handling when we do not expect to reach it and it does not point to logic error that should be handled. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 2031487a9dae..3a5f902b625d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -706,8 +706,8 @@ static void mlxsw_pci_cq_tasklet(struct tasklet_struct *t) if (++items == credits) break; } - if (items) - mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); + + mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); } static int mlxsw_pci_cq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, From patchwork Tue Apr 2 13:54:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614148 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2072.outbound.protection.outlook.com [40.107.94.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5CCC99463 for ; Tue, 2 Apr 2024 13:57:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.72 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066258; cv=fail; b=GYgXzswOrB+4gflblVbh+Hgtuv30hbh2PBm4Uys/fDWf5vdfgS95nb/x9dU2i338F/Ge4AqzYJx/sIJsDMwMrILdoDZ1Td+YbvRkqrRD3DooUFfXwzYtf8kCpxmBXZuPDqijS1r89K+40qE9wjZr5ux2W7LA5t6mHUD+Dhq1IBo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066258; c=relaxed/simple; bh=2Xcfqv3lh+D3uLuzDWIscSwOTN/BBKUlxxhZ/vAfIfI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=G025Ad1I5JSkgK7F9hafaBkV7KAyiMQVRKfjKOIYOmKMruiB7mh1OnoPWGFO745ESFHYTYdSLuxO22RpZOEkD67FE1SvG8PywmG7a8W2/P1/sO3fuPgHoL/xj7SFjrvZTIp+nyIKWf8zSHUtMzXtRhi8dzZv0RiO2kkg0tdQXws= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=PDWLYPU2; arc=fail smtp.client-ip=40.107.94.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="PDWLYPU2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TYz1yB6XI9fmRHUt2TDLwYgcwVU6cgvFiEFiQ4CN8c6QllfmhU8muYakoM7tpzo9p31+YENbwfjSrcV2tRDRolnB+AhFADpQ68WbchtJhjWBNFIrXwQha9haLVHkjain2HnTxeMCxzadAAeYJ8S8ZftC77wbusB4XtEUUjRSe03eUTnNvVZRggKDP6g8zThyq2kdLHBvhY6kXfZ9t/gUVOx8teL5f1yTs2iQcZGFDN/EXUFS2Zh8MVzj73+m8hgHKd1jWVscLoLyG74EJ1Vas/kTrTsOvq5uC/nYZWmVypjkTP6qywpZ5zR0nfcb4Pm8gxUfOl7eW+Yq2u44vaCUnA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AgekQ0pfilbNA2RaPBmIswH12SvEfpRnEoJyGzt/cBI=; b=JpNZvO67fYh/JoEpefx0IZQcV1+2TteQ+V16Kz1PvgGaTjZALxeGJ6xXzx9QyZ4A0friSAJk6oudcx8zPFR5kPa4qPjAthOSfYPygzzul7rQ2GahrHTdHu6LH8FjJtnhxhzSpFDFg0/q+ow7iKvWfihfJh1pmRNbMEo8fCXTAPtZ3dq3lHGxwu5gvQW7cneNt86PYtaLPQpnAxAit1Qk9JxxsY8VJgurz7e+afPtn6XHaTQ/TSxCBjmV+mqAS2q2yhTzhI3KGsKXMxcfzUyYI1aql6pYPMRFaquTo/7ra16ZyNGMFZlJWOcVolhX/gEOzhe8jUrP2gV2fftlnX1r/g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AgekQ0pfilbNA2RaPBmIswH12SvEfpRnEoJyGzt/cBI=; b=PDWLYPU2NjRiWXkcwpfRoiQftrdV11hez9e0tvkegzaFXgu59hn8r/j4Kc+CGy62Vugdfp+sSfNd1+kd6ankcfTdjYoF7t85DKYvWDxOr7oeQVAexItz7bBJfw8/t0I3YUj5iO9AZwRzSO37Ybrz3r96ZoiQOqS5jNskj9xHo6i8UujRcxVtaj45vcdqBaS5kBlc8ra3+KlzD7sU+N/8rOc0tIZeYw+fIGMo/AUDhjbs7RJ8PAovcxB3Y1Fwvf5eOcui8fF7nvHC4yWaZD5FLyFxwn7NdOKd6lhUL+wlUWA4U2I6XRwakMijv5mTW06AAuQpK85BPcyeN6IO+zQFkw== Received: from CH0P220CA0025.NAMP220.PROD.OUTLOOK.COM (2603:10b6:610:ef::20) by IA0PR12MB8747.namprd12.prod.outlook.com (2603:10b6:208:48b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:32 +0000 Received: from CH2PEPF0000013C.namprd02.prod.outlook.com (2603:10b6:610:ef:cafe::62) by CH0P220CA0025.outlook.office365.com (2603:10b6:610:ef::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.20 via Frontend Transport; Tue, 2 Apr 2024 13:57:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013C.mail.protection.outlook.com (10.167.244.73) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:32 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:13 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:08 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 05/15] mlxsw: pci: Remove unused counters Date: Tue, 2 Apr 2024 15:54:18 +0200 Message-ID: X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013C:EE_|IA0PR12MB8747:EE_ X-MS-Office365-Filtering-Correlation-Id: b4c773f2-9283-4dab-4b54-08dc531cd7c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qlQxgNLwa19OCXffKb01KyahFRvuaUM5K7TOZSRK0bMFhOcZEty6CVOVcy3o8XLoESP9OXjlXknTWdQ8l6AClhiCAOND26+cyiMkHzCI1rt53BkRq430Kz5+F7WwHTmdGGwoxwMjURqEcV6SxIW8hf5DuXCfn3czi4GnYc2+0hgf9EJqglMwTbwOOK2z70Tcu/Lvf0N7MALI0kRFpkNcQ1qxSJiv7rjdDT3Xgmd/qlI73ACN+wB84pAtizQzJ2idR1L+ZMKjkgytXpS6QHeFQQKuh9CMJmpUtXIW6ttnZieLHYskccUTy6Z51824DjA0211FxsmQeHl9I6Q1zuP/3peJ+BggMe96O/+SZjc4HUWjUMFHCD38mFbAWNlKVfXU914ihYN1JmL+dXOVfLD3QMwdOe+g9umeUarbvAo9KpKWepfyV7JJqREDZOSoREXLgREotJoKKCZHGzeaJfQBAKc4Wch2Q/nYZ+DX4wQHu89NdakVOVM8bUYW3Mzgzn8jXB9nCy6XhjkEKi/ONRwH0rUMtki+1aTY3U/2nu8HNvBKg1xWmx4/U+r7eRPf9tWb+u4f+yBWQe5xgxjCVzfke22df8rIxQpzAwzeF+p4aMN0KxmpZedGOhwoKRP46EvPAc8a9Ob8sjkZDa4ZqI8IzhCuFSCfYuB8zKZnnDAS1gDBvfu/Q2jpwct3zuG35fnkFBJ1YxX2SKrF2cOMVT06X7L6TrebdNhj/D7lvI6gtZZnk1TiEbGpU1T+7TMgP7r1 X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(36860700004)(82310400014)(376005)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:32.2491 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b4c773f2-9283-4dab-4b54-08dc531cd7c6 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013C.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8747 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen The structure 'mlxsw_pci_queue' stores several counters which were consumed via debugfs. Since commit 9a32562becd9 ("mlxsw: Remove debugfs interface"), these counters are not used. Remove them. This makes the 'union u' and 'struct eq' redundant. Maintain 'struct cq' as it will be extended later. Replace increasing 'q->u.eq.ev_other_count' with WARN_ON_ONCE(), as it is used in an unreasonable case of receiving event in EQ which is not EQ0 or EQ1. When the queues are initialized, we check number of event queues and fail with the print "Unsupported number of queues" in case that the driver tries to initialize more than two queues. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 49 +++++++++-------------- 1 file changed, 18 insertions(+), 31 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 3a5f902b625d..f05137b85483 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -80,18 +80,9 @@ struct mlxsw_pci_queue { enum mlxsw_pci_queue_type type; struct tasklet_struct tasklet; /* queue processing tasklet */ struct mlxsw_pci *pci; - union { - struct { - u32 comp_sdq_count; - u32 comp_rdq_count; - enum mlxsw_pci_cqe_v v; - } cq; - struct { - u32 ev_cmd_count; - u32 ev_comp_count; - u32 ev_other_count; - } eq; - } u; + struct { + enum mlxsw_pci_cqe_v v; + } cq; }; struct mlxsw_pci_queue_type_group { @@ -462,12 +453,12 @@ static void mlxsw_pci_rdq_fini(struct mlxsw_pci *mlxsw_pci, static void mlxsw_pci_cq_pre_init(struct mlxsw_pci *mlxsw_pci, struct mlxsw_pci_queue *q) { - q->u.cq.v = mlxsw_pci->max_cqe_ver; + q->cq.v = mlxsw_pci->max_cqe_ver; - if (q->u.cq.v == MLXSW_PCI_CQE_V2 && + if (q->cq.v == MLXSW_PCI_CQE_V2 && q->num < mlxsw_pci->num_sdq_cqs && !mlxsw_core_sdq_supports_cqe_v2(mlxsw_pci->core)) - q->u.cq.v = MLXSW_PCI_CQE_V1; + q->cq.v = MLXSW_PCI_CQE_V1; } static unsigned int mlxsw_pci_read32_off(struct mlxsw_pci *mlxsw_pci, @@ -663,7 +654,7 @@ static char *mlxsw_pci_cq_sw_cqe_get(struct mlxsw_pci_queue *q) elem_info = mlxsw_pci_queue_elem_info_consumer_get(q); elem = elem_info->elem; - owner_bit = mlxsw_pci_cqe_owner_get(q->u.cq.v, elem); + owner_bit = mlxsw_pci_cqe_owner_get(q->cq.v, elem); if (mlxsw_pci_elem_hw_owned(q, owner_bit)) return NULL; q->consumer_counter++; @@ -681,8 +672,8 @@ static void mlxsw_pci_cq_tasklet(struct tasklet_struct *t) while ((cqe = mlxsw_pci_cq_sw_cqe_get(q))) { u16 wqe_counter = mlxsw_pci_cqe_wqe_counter_get(cqe); - u8 sendq = mlxsw_pci_cqe_sr_get(q->u.cq.v, cqe); - u8 dqn = mlxsw_pci_cqe_dqn_get(q->u.cq.v, cqe); + u8 sendq = mlxsw_pci_cqe_sr_get(q->cq.v, cqe); + u8 dqn = mlxsw_pci_cqe_dqn_get(q->cq.v, cqe); char ncqe[MLXSW_PCI_CQE_SIZE_MAX]; memcpy(ncqe, cqe, q->elem_size); @@ -693,15 +684,13 @@ static void mlxsw_pci_cq_tasklet(struct tasklet_struct *t) sdq = mlxsw_pci_sdq_get(mlxsw_pci, dqn); mlxsw_pci_cqe_sdq_handle(mlxsw_pci, sdq, - wqe_counter, q->u.cq.v, ncqe); - q->u.cq.comp_sdq_count++; + wqe_counter, q->cq.v, ncqe); } else { struct mlxsw_pci_queue *rdq; rdq = mlxsw_pci_rdq_get(mlxsw_pci, dqn); mlxsw_pci_cqe_rdq_handle(mlxsw_pci, rdq, - wqe_counter, q->u.cq.v, ncqe); - q->u.cq.comp_rdq_count++; + wqe_counter, q->cq.v, ncqe); } if (++items == credits) break; @@ -721,13 +710,13 @@ static int mlxsw_pci_cq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, for (i = 0; i < q->count; i++) { char *elem = mlxsw_pci_queue_elem_get(q, i); - mlxsw_pci_cqe_owner_set(q->u.cq.v, elem, 1); + mlxsw_pci_cqe_owner_set(q->cq.v, elem, 1); } - if (q->u.cq.v == MLXSW_PCI_CQE_V1) + if (q->cq.v == MLXSW_PCI_CQE_V1) mlxsw_cmd_mbox_sw2hw_cq_cqe_ver_set(mbox, MLXSW_CMD_MBOX_SW2HW_CQ_CQE_VER_1); - else if (q->u.cq.v == MLXSW_PCI_CQE_V2) + else if (q->cq.v == MLXSW_PCI_CQE_V2) mlxsw_cmd_mbox_sw2hw_cq_cqe_ver_set(mbox, MLXSW_CMD_MBOX_SW2HW_CQ_CQE_VER_2); @@ -756,13 +745,13 @@ static void mlxsw_pci_cq_fini(struct mlxsw_pci *mlxsw_pci, static u16 mlxsw_pci_cq_elem_count(const struct mlxsw_pci_queue *q) { - return q->u.cq.v == MLXSW_PCI_CQE_V2 ? MLXSW_PCI_CQE2_COUNT : - MLXSW_PCI_CQE01_COUNT; + return q->cq.v == MLXSW_PCI_CQE_V2 ? MLXSW_PCI_CQE2_COUNT : + MLXSW_PCI_CQE01_COUNT; } static u8 mlxsw_pci_cq_elem_size(const struct mlxsw_pci_queue *q) { - return q->u.cq.v == MLXSW_PCI_CQE_V2 ? MLXSW_PCI_CQE2_SIZE : + return q->cq.v == MLXSW_PCI_CQE_V2 ? MLXSW_PCI_CQE2_SIZE : MLXSW_PCI_CQE01_SIZE; } @@ -815,16 +804,14 @@ static void mlxsw_pci_eq_tasklet(struct tasklet_struct *t) switch (q->num) { case MLXSW_PCI_EQ_ASYNC_NUM: mlxsw_pci_eq_cmd_event(mlxsw_pci, eqe); - q->u.eq.ev_cmd_count++; break; case MLXSW_PCI_EQ_COMP_NUM: cqn = mlxsw_pci_eqe_cqn_get(eqe); set_bit(cqn, active_cqns); cq_handle = true; - q->u.eq.ev_comp_count++; break; default: - q->u.eq.ev_other_count++; + WARN_ON_ONCE(1); } if (++items == credits) break; From patchwork Tue Apr 2 13:54:19 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614149 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2062.outbound.protection.outlook.com [40.107.223.62]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BB27A85624 for ; Tue, 2 Apr 2024 13:57:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066261; cv=fail; b=qyOX0kHnFoPf8coEc7xQyZEkoh4PNVa6f6UheYUAQFpqQ3uQtCVdiIdz5yq2xShCVAAcV3zGHx2ZcG0XSDyekw7lm2orzeFtMpJ+ZF9isODiCb1F6wLH6BG282laTWe6oGtsX4hAJ1F7/NlW/VUrRe0/ZnOq2oUhc9xkhmqedGo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066261; c=relaxed/simple; bh=2njgSWhJxachikx+Mf01KLDmGQ6GStdy7EW0supzxV4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ku2wchSnshbd/wvgbEwzEQ3E8Lyo5CvOPQPwiZA5evZsz6V229e2va6XOQovoHQBy/sxsmY5F1h+xc3dT1xddrZLG5y4mfh8MUrQajI2iKErPccrLM3iIQm6ARSp4jYFF+vGe8ljozdyZQ+PcgASxh6U04NUNwkcR5K7SUUT6KI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=ASR3XOsP; arc=fail smtp.client-ip=40.107.223.62 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="ASR3XOsP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WRnRIe2GtulCCLYjAj/z9PlZkisbK/i/55mSvREkj+o+41/jiO7vbs37VSknaiq9fqrOX95W1gQOuO8cJAlMiHgIjHB4eMheY2LctJ/S0bXIuHSLVhTI7M5D0YoSQn3FpgGZVgF+VY8gsXKktf2uNpUAnTkvGoAoMPe43ZM+lTOIt7XtorzVnkreR3YocifjS9ORRMVD7Tsq0eDLXH3eBQT4Ded/kAOqppVILmbliQhTxI2KbSSO4pKJZFQAhkSEqZXOEHbqYRleWFw2xcXIYZGDVacne45B8FCH8VYFA16rLTvhyk2srBvRPdaioQzyUTWe1ILaWT1Wewb+4Mm5mg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Hf2SB1jpQtaH9w4/YAvPsC3A2tToyxAT3iL0d0a0bIA=; b=Gv6rs1HSOP7VaT9gmVvZqTHnuqrLZIN5yKwBtIN9FhQxiUoNS5YiBF97HOz1uX1bQ+JZoTIeyIASFNUtTrYE/UOovG3tyla0o6zPKzOt+ylazgZoVmKqPiL8j6SBBbgK6+GDytfUrZseMQ1dgJxVlcQf/dmoiDrml+TbywXybXgQgyzH6Q1iOx4ZyUHvoK6ALaHmTUS+h1EU4pLZQBnr04iOwqVkCY1eTLiD13yO+dIowaR489vRpgrSobGFaB14a5XtsftpdkHxwQyVbYraYdPCfMu2f8xmYz94hyYyQLOzjaVT1WWhC+/QkT1J38hBgbq23hx+b+p/akdgYteEmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hf2SB1jpQtaH9w4/YAvPsC3A2tToyxAT3iL0d0a0bIA=; b=ASR3XOsPRLq6WaUH56yHhSliRRMIWw7nErSQmAdQQkaR8grQWq8BlEeRZmT/ATe7ATsRcow62288sy6QyukqMVL7OWjsFfcHOL0kvPa/vtXx2M8lYulMTWGkwS5WIRrSzo7yD0LEPUOikIE9NweN58v10K0iZA/zDPfQ42Coc++UPOv5J8JHiBc7nPZvt0AS6SRRwvyIkqp9N/kLqVmvDnAZJ6IWWtXgZglJaDnAWyBXmPHF5PEcR5TpxrNw7J3VtjYc/TAvO08PcdHYxqNpeBH4mp/SqK8CzDNx5ZXuC1h7xjIYSclWNjYI49RBPi9nH06c66AK6yatU10QUsd8wA== Received: from CH2PR14CA0006.namprd14.prod.outlook.com (2603:10b6:610:60::16) by DM4PR12MB7623.namprd12.prod.outlook.com (2603:10b6:8:108::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:35 +0000 Received: from CH2PEPF0000013E.namprd02.prod.outlook.com (2603:10b6:610:60:cafe::4f) by CH2PR14CA0006.outlook.office365.com (2603:10b6:610:60::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.39 via Frontend Transport; Tue, 2 Apr 2024 13:57:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013E.mail.protection.outlook.com (10.167.244.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:35 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:17 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:13 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 06/15] mlxsw: pci: Make style changes in mlxsw_pci_eq_tasklet() Date: Tue, 2 Apr 2024 15:54:19 +0200 Message-ID: <2412d6c135b2a6aedb4484f5d8baab3aecd7b9ae.1712062203.git.petrm@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013E:EE_|DM4PR12MB7623:EE_ X-MS-Office365-Filtering-Correlation-Id: c9f90a07-bca0-4d52-2b52-08dc531cd9c0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yQLu8eBQ7UF8OIMxx2Ujs8aUNisoN7jea7s8oGS45GHfNQzTviATETGWvkkYY23T0YBZhPXd1WeK4saBDkoQSazNxY7tgKeYKqf4vvF8Op138s0GLZPrPW0dJmMZOXwLumjZ8i5PyTU+oeewVFw1ROVMdczg3fhzlezJxp5GMhARfYi3d17JirC4XfWZZAc1659uTa97MBeQVt9PRqSptiGOBcapfYWn777FIqXAPphCFnFJ7/Zv5DKxTsyX1X0Om5PVphJjM155nQa4yYMRddHWZp8PmsBAL3jDyDNmVAUxG1FtLzlr1MhDyrEbq7FMfngrNIkVS9ABz+0AZFWQvRHbXWsk33M0J9K6qm9oeBZTi1evGILGW7ZMTdC+DvKrR6oc+9gMFeFMgXUGH6h9i4NrPrEN4KFs1dpHbKihfziRXzZIpbnCcVi+vDrmJZTjr5BqCRyWKCtDR9Zd6hSNnT+KeTHMGf+n+lrnoDTuWCyZOZlg3rA25qAfETn43lyITqhi3xvZZZ9wtn1EXkXdfQxgBBjpB5TUPpK5XIJMOosTubhBh2OAdMvGu1Y5cmHxel8bp7OkICSEc/WIsITk2Er081TLrtwWOOfQGQtqebrAoTB/zNtGAVmtPAlZ+M23mbEkohJeHI6reBho+pWWNj5A6c8ehJo523lr4bEeYwlhzDMJGSlVgdYgIgAk+/B6J7O4U2aH7SStK6X5SpqwyT7HrSK27WuiSmGUpf+xbS3cMhhw2WQSM3fESJ4ZMFor X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(36860700004)(376005)(82310400014)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:35.5488 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c9f90a07-bca0-4d52-2b52-08dc531cd9c0 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7623 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen This function will be used later only for EQ1. As preparation, reorder variables to reverse xmas tree and return earlier when it is possible, to simplify the code. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index f05137b85483..c9bd9a98cf1e 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -783,15 +783,14 @@ static char *mlxsw_pci_eq_sw_eqe_get(struct mlxsw_pci_queue *q) static void mlxsw_pci_eq_tasklet(struct tasklet_struct *t) { - struct mlxsw_pci_queue *q = from_tasklet(q, t, tasklet); - struct mlxsw_pci *mlxsw_pci = q->pci; - u8 cq_count = mlxsw_pci_cq_count(mlxsw_pci); unsigned long active_cqns[BITS_TO_LONGS(MLXSW_PCI_CQS_MAX)]; - char *eqe; - u8 cqn; + struct mlxsw_pci_queue *q = from_tasklet(q, t, tasklet); + struct mlxsw_pci *mlxsw_pci = q->pci; + int credits = q->count >> 1; bool cq_handle = false; + u8 cqn, cq_count; int items = 0; - int credits = q->count >> 1; + char *eqe; memset(&active_cqns, 0, sizeof(active_cqns)); @@ -816,13 +815,17 @@ static void mlxsw_pci_eq_tasklet(struct tasklet_struct *t) if (++items == credits) break; } - if (items) { - mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); - mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); - } + + if (!items) + return; + + mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); + mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); if (!cq_handle) return; + + cq_count = mlxsw_pci_cq_count(mlxsw_pci); for_each_set_bit(cqn, active_cqns, cq_count) { q = mlxsw_pci_cq_get(mlxsw_pci, cqn); mlxsw_pci_queue_tasklet_schedule(q); From patchwork Tue Apr 2 13:54:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614150 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2086.outbound.protection.outlook.com [40.107.95.86]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 940C382893 for ; Tue, 2 Apr 2024 13:57:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.95.86 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066264; cv=fail; b=Kmxt981CP0JtkBnoQ13ioNRZ/rsXie4i6nDVRDRUjRxnVjwl4vTFVpOGZ1d5WtaAV33MdHhbrvkaYdutznLq5UhHWdp4i7N22NOOLcnYlp1xHU27O/IS6lfFWflEi6yygWF6pTWoeeaUZuAhl5e2eHE3EDwwSn3gmingBAXmj1k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066264; c=relaxed/simple; bh=qlos1lF6tQPmSIbJvmp87Jk36IVRfXN4xpvi92i3tPA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=PQeQfllc362U9T2w2w20wCZcPBLmuxikbijTEdjN+EFAXLN0a/zx2DDrmEIm5oZi3DUG2bLcSWdshLBE53ikeorq9ZcK5axnHSuGiZ1/ltT76kj7ckHj72Arq+S913iRQo790ETwqptQmDJmxqdN8vbkrg/utdKFDaiy1H3RQ9I= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=aPVz/G+W; arc=fail smtp.client-ip=40.107.95.86 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="aPVz/G+W" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ku0hpEhs953j6fxDOyh9i6UsyUcApZf7EjQBxongf7KnkredCBVhtkdtfMRIvJz0xllPb/uwjXZ0QB+Ti7R4BCs7uj5/UZu2ex3VKRc7Ufov9S+95+R58hxKZBisyIXKvgAMlYxA3mrS3PSyx9JG/QIu8reMoxwlKZrbhpIro8F3CtrCA20Pp2qJu3MRDh0bk49yp6PBoFQIn+iOcKjCb/78Z4e7FGYqq9mSlAO1T6bB8V0hop/SRlL53x4cr98/d2dccIRQs7Tjp26qKwPGGBYC4yny9UvSOTjqBoX2povdSNQ2Oiu2lnBYdu2X6dd/5HlqY2k9emHn76JXvwnFVw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=veHuaV3/pY/MqA1u1UTI5CjsClXztM4HCKlOiwt0UQw=; b=ACEPleWjQOi1wCPXd+PbG65LsvSWzhjhqpvIMg+/B//neqcdeqybVBCrZgiqs4fgKJWxD7r4gCdv/p/6ChQRJUufAMOuYJVn2T4AtkVbJrzLcsHrfpwbkgtTg1gMnU8liciRoa68H59iZnsC4YJzRn0jnjoXRSAGdsILbJEdAE0zBXy4wXyYzPnGy9pBxYlslDZlB3zNQDRKAu0PU0+ThvtusCTxVDJ3r1BkbNtZ+7E78+00EoB4O1CZGTzJ3bMT8sxedvQRgP5TFfsu7n5FcsBVxc1dm5lTZZBiyEUkYyzF8nUBtePaxufM8A8daF96eUUwTH/YrAPHW0FgStTLDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=veHuaV3/pY/MqA1u1UTI5CjsClXztM4HCKlOiwt0UQw=; b=aPVz/G+WQpiRwiyiARgjE9NInQujMofhqZPxU7hskKCtBNWfCF4W2ggbeqdF7+rjZWLjfmpU4VScpxQFMFArk+mkkao/KYfC+nnhP8RpYVw8KUezumTYg/uBdr7f1Ngo7ax264NO+3KtrrEcmxdna4Pu6MJbxKHu35GRGZh8Q8QCLqlN7KLkiGButaApxXCjWOXTOuzuBiIILx5UpfUkgqsgq6nCmiS53jVTZkvg82cY58BZLvOgWdOv0Xx1ybu3Us9LwpYU96LAtaQZpoU4EQ1AqNzpUiwmEr8JQZUFIJuAez8nUSbR0LhPWxSKM/DOUQgbhmdlqhK3eDaY+GN/Xw== Received: from CH0PR03CA0046.namprd03.prod.outlook.com (2603:10b6:610:b3::21) by SA1PR12MB7040.namprd12.prod.outlook.com (2603:10b6:806:24f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:39 +0000 Received: from CH2PEPF0000013B.namprd02.prod.outlook.com (2603:10b6:610:b3:cafe::ba) by CH0PR03CA0046.outlook.office365.com (2603:10b6:610:b3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.49 via Frontend Transport; Tue, 2 Apr 2024 13:57:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:38 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:21 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:17 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 07/15] mlxsw: pci: Poll command interface for each cmd_exec() Date: Tue, 2 Apr 2024 15:54:20 +0200 Message-ID: X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|SA1PR12MB7040:EE_ X-MS-Office365-Filtering-Correlation-Id: 816de610-0e49-46db-4855-08dc531cdb8b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RzfUaHW3q2e8FkFxKQWxjSoJU8PXkJ5I+8RneMbs0ULHVSJLnExvAi2OixKJ8b9reP3j+LVZkNDJ9MXQVO8ue2lX1is5ZoQU1wbHEEi8jWRG/C+JI7tqenCzewwxrhixC7BHPKfZvfoMeLr37RrzlME1MHUKmB+HBULJVjooH477d+Omit0ATrLnxAN2yzGqKCPEzyh7jwhp/MJDNs1gWTYckl60YLJC+RfTVNS23QGfUiJM+Xk8qMLDSH/zPBO/s3zfw3fUlH3nLj/r15LriGZ3N/9rJHbN3a7rIIpSQa6AV+i9ILP78NPhnU240SLcQgpfp49OvAgWTT7cWsKs7At8NSnJUI9/CJTjHVqoziTTQCcDTluCuzzBQezgR7pTFClfY7nLH2sJm2iw5kB8qd7Y/CUU6XjnXJ2T0xSvqTRovegDU5NXaNVEt+nSZC+lgJy/dLfoRWVV7Xjqe5IMND3TlBtdwKbEoHqWDnNvsD1n5uwjSxfWEWDRdNwMMMiEcoMnSfO8N72sLwB9TWH1mWbkrd32qYxP9BHsaSy2quvih88DjC4wWLvHr9s0qkeMVvDLSUJVOymWG7ZIHdIgMIk1o54/ADx/fAUUi0fmriS0dqzk0J4OBTiERD9rSeeVjoUvV+It1vNrQ0TfXmCEWSnIB41LH6+uYKS8rMy0aLTbP75Si3ly+vSNdt8jfuJEgjyTxgrxOI3fIupDvGdpKuzE4A6lswcLw1B6ITMJu1DEjpUixarB2XCcraA0o2fC X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(36860700004)(82310400014)(376005)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:38.5733 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 816de610-0e49-46db-4855-08dc531cdb8b X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7040 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Command interface is used for configuring and querying FW when EMADs are not available. During the time that the driver sets up the asynchronous queues, it polls the command interface for getting completions. Then, there is a short period when asynchronous queues work, but EMADs are not available (marked in the code as nopoll = true). During this time, we send commands via command interface, but we do not poll it, as we can get an interrupt for the completion. Completions of command interface are received from HW in EQ0 (event queue 0). The usage of EQ0 instead of polling is done only 4 times during initialization and one time during tear down, but it makes an overhead during lifetime of the driver. For each interrupt, we have to check if we get events in EQ0 or EQ1 and handle them. This is really ineffective, especially because of the fact that EQ0 is used only as part of driver init/fini. Instead, we can poll command interface for each call of cmd_exec(). It means that when we send a command via command interface (as EMADs are not available), we will poll it, regardless of availability of the asynchronous queues. This will allow us to configure later only EQ1 and simplify the flow. Remove 'nopoll' indication and change mlxsw_pci_cmd_exec() to poll till answer/timeout regardless of queues' state. For now, completions are handled also by EQ0, but it will be removed in next patch. Additional cleanups will be added in next patches. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 48 ++++++++--------------- 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index c9bd9a98cf1e..b7a83b9ab495 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -111,7 +111,6 @@ struct mlxsw_pci { struct mlxsw_pci_mem_item out_mbox; struct mlxsw_pci_mem_item in_mbox; struct mutex lock; /* Lock access to command registers */ - bool nopoll; wait_queue_head_t wait; bool wait_done; struct { @@ -1105,8 +1104,6 @@ static int mlxsw_pci_aqs_init(struct mlxsw_pci *mlxsw_pci, char *mbox) goto err_rdqs_init; } - /* We have to poll in command interface until queues are initialized */ - mlxsw_pci->cmd.nopoll = true; return 0; err_rdqs_init: @@ -1120,7 +1117,6 @@ static int mlxsw_pci_aqs_init(struct mlxsw_pci *mlxsw_pci, char *mbox) static void mlxsw_pci_aqs_fini(struct mlxsw_pci *mlxsw_pci) { - mlxsw_pci->cmd.nopoll = false; mlxsw_pci_queue_group_fini(mlxsw_pci, &mlxsw_pci_rdq_ops); mlxsw_pci_queue_group_fini(mlxsw_pci, &mlxsw_pci_sdq_ops); mlxsw_pci_queue_group_fini(mlxsw_pci, &mlxsw_pci_cq_ops); @@ -1846,9 +1842,9 @@ static int mlxsw_pci_cmd_exec(void *bus_priv, u16 opcode, u8 opcode_mod, { struct mlxsw_pci *mlxsw_pci = bus_priv; dma_addr_t in_mapaddr = 0, out_mapaddr = 0; - bool evreq = mlxsw_pci->cmd.nopoll; unsigned long timeout = msecs_to_jiffies(MLXSW_PCI_CIR_TIMEOUT_MSECS); bool *p_wait_done = &mlxsw_pci->cmd.wait_done; + unsigned long end; int err; *p_status = MLXSW_CMD_STATUS_OK; @@ -1877,28 +1873,20 @@ static int mlxsw_pci_cmd_exec(void *bus_priv, u16 opcode, u8 opcode_mod, wmb(); /* all needs to be written before we write control register */ mlxsw_pci_write32(mlxsw_pci, CIR_CTRL, MLXSW_PCI_CIR_CTRL_GO_BIT | - (evreq ? MLXSW_PCI_CIR_CTRL_EVREQ_BIT : 0) | (opcode_mod << MLXSW_PCI_CIR_CTRL_OPCODE_MOD_SHIFT) | opcode); - if (!evreq) { - unsigned long end; + end = jiffies + timeout; + do { + u32 ctrl = mlxsw_pci_read32(mlxsw_pci, CIR_CTRL); - end = jiffies + timeout; - do { - u32 ctrl = mlxsw_pci_read32(mlxsw_pci, CIR_CTRL); - - if (!(ctrl & MLXSW_PCI_CIR_CTRL_GO_BIT)) { - *p_wait_done = true; - *p_status = ctrl >> MLXSW_PCI_CIR_CTRL_STATUS_SHIFT; - break; - } - cond_resched(); - } while (time_before(jiffies, end)); - } else { - wait_event_timeout(mlxsw_pci->cmd.wait, *p_wait_done, timeout); - *p_status = mlxsw_pci->cmd.comp.status; - } + if (!(ctrl & MLXSW_PCI_CIR_CTRL_GO_BIT)) { + *p_wait_done = true; + *p_status = ctrl >> MLXSW_PCI_CIR_CTRL_STATUS_SHIFT; + break; + } + cond_resched(); + } while (time_before(jiffies, end)); err = 0; if (*p_wait_done) { @@ -1915,14 +1903,12 @@ static int mlxsw_pci_cmd_exec(void *bus_priv, u16 opcode, u8 opcode_mod, */ __be32 tmp; - if (!evreq) { - tmp = cpu_to_be32(mlxsw_pci_read32(mlxsw_pci, - CIR_OUT_PARAM_HI)); - memcpy(out_mbox, &tmp, sizeof(tmp)); - tmp = cpu_to_be32(mlxsw_pci_read32(mlxsw_pci, - CIR_OUT_PARAM_LO)); - memcpy(out_mbox + sizeof(tmp), &tmp, sizeof(tmp)); - } + tmp = cpu_to_be32(mlxsw_pci_read32(mlxsw_pci, + CIR_OUT_PARAM_HI)); + memcpy(out_mbox, &tmp, sizeof(tmp)); + tmp = cpu_to_be32(mlxsw_pci_read32(mlxsw_pci, + CIR_OUT_PARAM_LO)); + memcpy(out_mbox + sizeof(tmp), &tmp, sizeof(tmp)); } else if (!err && out_mbox) { memcpy(out_mbox, mlxsw_pci->cmd.out_mbox.buf, out_mbox_size); } From patchwork Tue Apr 2 13:54:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614151 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2064.outbound.protection.outlook.com [40.107.92.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5D6682893 for ; Tue, 2 Apr 2024 13:57:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066268; cv=fail; b=mNpIteEoFYNbG3jBf/ArfFMCaPqYwr9CCNdwDftZqw7uuPevGbc8B6MrSOol4DrGm8XDBYsCHaLbnZy2AJaur8V6DO/8fEeCQURmLDMMhQQkUpIt3b5v69gI2jAOx2TICRa0Q6cAAPBIZiQVh1+5Zjs1iCNXUyMg1/QMcyF+mVc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066268; c=relaxed/simple; bh=fOrN4hCYaKGyqH53NTMdI7HdpkRsp8kASknvFM99NQ0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=udcq97F1UXshXQ98a6BGDOIOqYVONn2xvbBrMZUkqkXn/R374hXsGN7fOEhG8r+eF48Hikzt3Mga9ri/qLdWelLIsS4sb6sC8i/xUbUmn3GWcFl0KvB4wXw1wfUVe19RLbxFpbdb4I4Q0WLISaQX2sJea+4pXi19Ka/q/XYVvTs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=TFhvD/I0; arc=fail smtp.client-ip=40.107.92.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="TFhvD/I0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=abuHbou9dd10Wm7S92GeOKUH8/XM+XWFq5Lxa0yzecKQTYPgCu01KDHBp9qtcwQ+ZR/fjky1Z0sp+25/mOOuiMCHLyZeo/c7Ikc1veNfmLq7ZNvfepAnL7/aYo3uRf0dnG0/UyrFCdrEGzgCh5FqraYewhE/RN21m8+3wgPY+0P+Xc5fPKYS2jWE07RTXooCOIH6oGiW51zRdbNrPzTT4rfQbJ1djZlypEjLnemlQtu5nzpQ9oBsxCmBedOtzfHQKa8qzomG3MDY7ZaefSKOuspS3t+uu+cN2WQZhfYIjj6GBWsuVLQrSyDq+Tm+fwC/V+R0P7Jr4PEA6yxszd7toQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zrAoGk87e0kMO3vrEGw1ohOvppngE0fVYrxkaMcFvAc=; b=CcpP0SpObl71db5/KPCQr49yrEPNyZ0h4pCz6ANQPw25y5glneh0CEc4FhKG7LHZm/jis32IfcLii/wDImJo42Rh1yGNW0MRxwZo9ltg6QfTTsHJ9D1SmsT7Pi+lPdVmUJq01dZffZZMcqtF7BJMKh1EjM4w5/xPbxL5Lbq/RLmxAWHuXoqiJEF7acGmO+UfTV18yyydOa0XGlCXivFCyQ97izGo8gImzPEBjbJjxYwg0cjuWcYzKZbn/TXr2pD0meBOH9ERHZewQK+FPFo/sBLSEkkF9Or/s32RNEHDfltpyJQHi6RSSjxxGG3VFh4ZSGyv2esel4hXs8qyiTn7gw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zrAoGk87e0kMO3vrEGw1ohOvppngE0fVYrxkaMcFvAc=; b=TFhvD/I07hbLzRKCozQ9ZyGFRE4Ve+jj06A1KUUG40g+cmOFrKaRx2TXTHex4dQsYJony3FGFuTWCPzOVfAdtPaZr02A2HTD9+pW0S/y/2/vbKQ3wwjnAm4DE8EbXWy0vKQOZDgqr1dg7aPeMrZCfKMPuHZukIhCmP+VdA+4JD6DA+iuU4wmVkuMCmwj0RNf5FYm0ka+8ER1WFK0l9oQsOc2uz+CCIGAlQqDKogRd4XfrPmq3Sol3Q/LBB6FYv9JVDmOwSGRqiM9hCro5g6NxgBgm6hLNJoLJksIJg61DFMaNGd+h6huiKsH8PbG+ky9SpRFAGn3SIBy5o3JCy7Crg== Received: from CH2PR14CA0026.namprd14.prod.outlook.com (2603:10b6:610:60::36) by MW4PR12MB7144.namprd12.prod.outlook.com (2603:10b6:303:21b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:43 +0000 Received: from CH2PEPF0000013E.namprd02.prod.outlook.com (2603:10b6:610:60:cafe::8d) by CH2PR14CA0026.outlook.office365.com (2603:10b6:610:60::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46 via Frontend Transport; Tue, 2 Apr 2024 13:57:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013E.mail.protection.outlook.com (10.167.244.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:43 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:26 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:21 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 08/15] mlxsw: pci: Rename MLXSW_PCI_EQS_COUNT Date: Tue, 2 Apr 2024 15:54:21 +0200 Message-ID: X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013E:EE_|MW4PR12MB7144:EE_ X-MS-Office365-Filtering-Correlation-Id: 954ff046-a3fc-478a-d32d-08dc531cde33 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AJlLW4HnJJ36WKedoy1m+yRkhGUXj9ZnyNoFnxY8k1IlaHR1w/0HGWeuYa/CHlA/CkdDlki0BRUEvi0FAG86rKMhf9qJsuRfvdG4Fc6sBnSo/joZCj9icG1zkAxgBjM5ML89huBVWGXq9IrgwkOnAecXqM8ZIqXqJomm9gSi5FF6cElG3RuVUOkls3pJmSvGDrN8lIxsoTydMvugZrfQMfLTjoIsWBHW7Lpf4/HkwLjxhA4sHB2MqIi0NPVraGZpRWdME6rw//EwDh4zb/eqLtGa0Lb76DdIBmWgrv5d3/A8tTnngKqkj0dFpuYVJgqv5t3EXG8lr15Gb6IvbgfgrYMoERv1JdfSh+4shVirgwKoMoHteHIG943U5px8tH3Py6IgoDHQ+FfrgyntqhLtkqWgKpwwo80/mf0SSKOI+mQ8j9gHKvXSxeXcGd8ZZ0/VqOpYdZghDH4H2REKkFsG3sP0sNUGq1HW6SASZ2FgDihv9OtewDNhem4WpB6LiGr0QDCT7QeQEUXCMw7v5MEVbj0S/rLfvKoaMMABLxF9v+hHv2mnZyHT6C6Z++qOHtFLRzXHrRHeG2a6vv7xPP+KIf8EiiDFPKsAZbfw7sksUD9nzlgSBMk4AWvznoutKQFQ8IeK8W0783TnpAYCJJDP2biAoyJ23uAFLv7hQUDesewENsSFzHW0F+lModY8j0KVwOzjfTTYVqa+hSfqP/a8jEGaLWGohgFEOK86eCd5QXCpy7wO9GXOE4sjyCGCJkde X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(36860700004)(376005)(82310400014)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:43.0333 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 954ff046-a3fc-478a-d32d-08dc531cde33 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013E.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7144 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Currently we use MLXSW_PCI_EQS_COUNT event queues. A next patch will change the driver to initialize only EQ1, as EQ0 is not required anymore when we poll command interface. Rename the macro to MLXSW_PCI_EQS_MAX as later we will not initialize the maximum supported EQs, this value represents the maximum and a new macro will be added to represent the actual used queues. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 4 ++-- drivers/net/ethernet/mellanox/mlxsw/pci_hw.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index b7a83b9ab495..cb960917e462 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -1059,7 +1059,7 @@ static int mlxsw_pci_aqs_init(struct mlxsw_pci *mlxsw_pci, char *mbox) if (num_sdqs + num_rdqs > num_cqs || num_sdqs < MLXSW_PCI_SDQS_MIN || - num_cqs > MLXSW_PCI_CQS_MAX || num_eqs != MLXSW_PCI_EQS_COUNT) { + num_cqs > MLXSW_PCI_CQS_MAX || num_eqs != MLXSW_PCI_EQS_MAX) { dev_err(&pdev->dev, "Unsupported number of queues\n"); return -EINVAL; } @@ -1416,7 +1416,7 @@ static irqreturn_t mlxsw_pci_eq_irq_handler(int irq, void *dev_id) struct mlxsw_pci_queue *q; int i; - for (i = 0; i < MLXSW_PCI_EQS_COUNT; i++) { + for (i = 0; i < MLXSW_PCI_EQS_MAX; i++) { q = mlxsw_pci_eq_get(mlxsw_pci, i); mlxsw_pci_queue_tasklet_schedule(q); } diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci_hw.h b/drivers/net/ethernet/mellanox/mlxsw/pci_hw.h index 7cdf0ce24f28..32a4f436d24d 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci_hw.h +++ b/drivers/net/ethernet/mellanox/mlxsw/pci_hw.h @@ -42,7 +42,7 @@ ((offset) + (type_offset) + (num) * 4) #define MLXSW_PCI_CQS_MAX 96 -#define MLXSW_PCI_EQS_COUNT 2 +#define MLXSW_PCI_EQS_MAX 2 #define MLXSW_PCI_EQ_ASYNC_NUM 0 #define MLXSW_PCI_EQ_COMP_NUM 1 From patchwork Tue Apr 2 13:54:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614153 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2041.outbound.protection.outlook.com [40.107.236.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 636AF85278 for ; Tue, 2 Apr 2024 13:57:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.41 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066279; cv=fail; b=SPHht1ZcLspZaPrIgpgN3E6XQLCWtp8JPrNSAsKOZ9FZlwM0GmOgLhotBzwutL957sCXhhHxf5Sfbgrx/AnQN0wgDdgvmdH2xVsPxzqM6yhkgUIqzFvzUlZkjD3B8Mn3+DTIZ8ZkvEpzawPwb/8AcrtQ/jkGQfKwv/vIkCe9qhY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066279; c=relaxed/simple; bh=VivmZb2t+sBuvW+SgHwbpolhDnWiYVkXfKPIt8vtHwM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Q7Ine9k9CcchgQTGNkUUtK5AR7AU71Mkw58mv2jkVMVSixcKhdY7d3evvxFxQFDm0Mx40NoJucVWvo+UdzYnPW3Yob17FL/kMaLyr0afGTTJl+J/D3DqgKa4LEtDtZvYpCRxOWepr2kEwUbba37vtpuk4JmyAcEa9HJsefoqky8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=pLognDJ1; arc=fail smtp.client-ip=40.107.236.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="pLognDJ1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oC26961zupZzfulB4FTpeJ82GIt3cnCC4n1F0NXdDwZCPPPxGOX1MNd/SEv5VJzcTCHFN7ILBikqdznzVEjcTFVKYdHkhdsYDrUqbgXfHilEz0jh4MMmbXNEodDT6xTaVmUCAEfUuuuPKABDwfRVeewt3yRp6P31A5frehlz6zlLRkDrvVuT8e0jcJY76V9bhJWyrPO9D221Q/Wg4RJs2cRgN5laGkFMETMrrYUyy0Ai4njFwrlsrtu0Hs94WVv/plB3+lUkj7aQ5oLQ1eZqHjKI/FGaAv4aDshXNy1if0bt35JAmwsTOuWgkRXfOPVrV3QBMnkXYzpVo87lYh8MBA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=o23x0UK9mrWgD/xS/ZFkGAH8oSbU4h7+M/XBbvBEchM=; b=mfYRvRletdaPbwrxjQMKvTB3W30xIeILOeoNNGaU+r/Ds15jTweNj81Dq98td5nQayJhzSup76GTO4bBd2DT6URP0P07+6XzyKMs+QrdM3fRlQs1cJ9cgocZWLLlA1IrXt0qJ0Z8JL9GuHtn+oX4L/KKGQylRMer41G4tl8fsq08P86I0B6ju5VGQmxPt6NFRwkFpdt/uv5oGVdpfaFpmjeU6WK9qpBQNDfzd9Lny+cOXP139il/J7ShZitHWkWWgEq2jzddAjiAudb+6w+XAln3tBb7qAFY2wBJS5d9l45jObOFAQWzrTGhltW0pcLe4DAhTdK2a8TZTu/2FTC3Rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o23x0UK9mrWgD/xS/ZFkGAH8oSbU4h7+M/XBbvBEchM=; b=pLognDJ1IQAFd75Y5wD1C9aYrUS+eElGVyb6mU8rz6o5bPPrJ8kApWCGrYFDFUZS72i9V6BxV0se+Y4/n0brvHIN4+uXuNuJlzsOhU8t9vEYXwUrAZ1k6Z6avNy+vooW/DdrWod9oi7zAOIE1epExmLkuIlu9idMY51f0apNYgCHlLoCsVS/QfzFnwqRV1yjwLFx2V1iPyO1eSxtUmxaOu2cDEdXkWUSKC3Fo0oWItCu1r3Psi7xhFdF6qBzfbHvn7994Oq4kkBOI4LiSkYv5QCStglkM8N3SWeQOhhSvOcRSLqWIPMeWRSEz8Oq4Z1iOOJtXCnpusroE/lomm0CnQ== Received: from CH0P221CA0028.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::10) by CH3PR12MB7737.namprd12.prod.outlook.com (2603:10b6:610:14d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:47 +0000 Received: from CH2PEPF0000013F.namprd02.prod.outlook.com (2603:10b6:610:11d:cafe::ff) by CH0P221CA0028.outlook.office365.com (2603:10b6:610:11d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46 via Frontend Transport; Tue, 2 Apr 2024 13:57:47 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013F.mail.protection.outlook.com (10.167.244.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:47 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:30 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:26 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 09/15] mlxsw: pci: Use only one event queue Date: Tue, 2 Apr 2024 15:54:22 +0200 Message-ID: <23d764f5c032e4c363b98590b746a4b32d2bf900.1712062203.git.petrm@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013F:EE_|CH3PR12MB7737:EE_ X-MS-Office365-Filtering-Correlation-Id: b46b9d46-0e77-4592-04eb-08dc531ce0c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CZF5lEvKYqFNPX4SsgpqDER0uJLAYj7at85WHfeubvxlfKwxw6X3gurIcBCKjS6QXprf5qOiDKOwVk1jrsJOFV3+XuVdzmWa0f31tZhYi7zJuts6eGVhy9hgUpstI/FMnfMekOMyTHXgc4OZezbwkx8oB+KXktDBgeLNzmO5nD/qxlIYv+H3B+EnDfZg+3nxlqFcT7epSdckGR6pdqvMJykkdp6mIlJGlAqSdI/M4pgx5w4texjnAYXXoUL6p8BF0xhcf+vfFQvKUNRpAe0yvrfitKtqny9LqxYlxTbdAUUcEUSin/ggqhWAQMA2bA3SU6SDqGnAaAm0btJ3we8tGZYIV+hbw5UROu1qcBCDj1v8KTK9b7mIy3mEUzWclFmJjJfgyk8iTPScZgjTsAO5nr4Sf/yOANBc1wRy/E4cieu4cTE637aIgRjDZeRZg5ACBjAw6MELRNvvvNI2kQjJkJP9eLsvYq6ZgOK+CEDiZF2i04V2eIGUjc3iP070lE2sb2Ksg/JhW/OLzs829rOg7Ppuxm4UJUNZd/5y9XCbt3hhXNc4oiK3BZpV2X4kPkxlFqlFxsajyv/PXrH/5xKnSnUBQPFfHbouRgejHToz79u4XqGv8nSLB1Jy6TPcA3OLJ72xbzzVFJA/OLIIJ9KXvbKSCuraEb7hqeatMaVAvO/wZoZWwEtZl8FmWsfIylbHc0Zuqwj3mU19IIhSXZAgUJ5q5/6crmAq/z36EoDFhDAVLN/bcxekvmLsME93kN5m X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(376005)(36860700004)(82310400014)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:47.3115 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b46b9d46-0e77-4592-04eb-08dc531ce0c3 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7737 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen The device supports two event queues. EQ0 is used for command interface completion events. EQ1 is used for completion events of RDQ or SDQ. Currently, for each EQE (event queue element), we check the queue number and handle accordingly. More than that, for each interrupt we schedule tasklets for both EQs. This is really ineffective, especially because of the fact that EQ0 is used only as part of driver init/fini, when EMADs are not available. There is no point to schedule the tasklet for it and check each EQE. A previous patch changed the code to poll command interface for each use of it. It means that now there is no real reason to use EQ0, as we poll the command interface. Initialize only one event queue and use it as EQ1 (this is determined by queue number). Then, for each interrupt we can schedule the tasklet only for one queue and we do not have to check the queue number. This simplifies the code and should improve performance. Note that polling command interface is ok as we use it only as part of driver init/fini. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 54 ++++++-------------- drivers/net/ethernet/mellanox/mlxsw/pci_hw.h | 2 +- 2 files changed, 16 insertions(+), 40 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index cb960917e462..3460a4ef7d9a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -223,10 +223,10 @@ static struct mlxsw_pci_queue *mlxsw_pci_cq_get(struct mlxsw_pci *mlxsw_pci, return __mlxsw_pci_queue_get(mlxsw_pci, MLXSW_PCI_QUEUE_TYPE_CQ, q_num); } -static struct mlxsw_pci_queue *mlxsw_pci_eq_get(struct mlxsw_pci *mlxsw_pci, - u8 q_num) +static struct mlxsw_pci_queue *mlxsw_pci_eq_get(struct mlxsw_pci *mlxsw_pci) { - return __mlxsw_pci_queue_get(mlxsw_pci, MLXSW_PCI_QUEUE_TYPE_EQ, q_num); + /* There is only one EQ at index 0. */ + return __mlxsw_pci_queue_get(mlxsw_pci, MLXSW_PCI_QUEUE_TYPE_EQ, 0); } static void __mlxsw_pci_queue_doorbell_set(struct mlxsw_pci *mlxsw_pci, @@ -754,16 +754,6 @@ static u8 mlxsw_pci_cq_elem_size(const struct mlxsw_pci_queue *q) MLXSW_PCI_CQE01_SIZE; } -static void mlxsw_pci_eq_cmd_event(struct mlxsw_pci *mlxsw_pci, char *eqe) -{ - mlxsw_pci->cmd.comp.status = mlxsw_pci_eqe_cmd_status_get(eqe); - mlxsw_pci->cmd.comp.out_param = - ((u64) mlxsw_pci_eqe_cmd_out_param_h_get(eqe)) << 32 | - mlxsw_pci_eqe_cmd_out_param_l_get(eqe); - mlxsw_pci->cmd.wait_done = true; - wake_up(&mlxsw_pci->cmd.wait); -} - static char *mlxsw_pci_eq_sw_eqe_get(struct mlxsw_pci_queue *q) { struct mlxsw_pci_queue_elem_info *elem_info; @@ -786,7 +776,6 @@ static void mlxsw_pci_eq_tasklet(struct tasklet_struct *t) struct mlxsw_pci_queue *q = from_tasklet(q, t, tasklet); struct mlxsw_pci *mlxsw_pci = q->pci; int credits = q->count >> 1; - bool cq_handle = false; u8 cqn, cq_count; int items = 0; char *eqe; @@ -794,23 +783,9 @@ static void mlxsw_pci_eq_tasklet(struct tasklet_struct *t) memset(&active_cqns, 0, sizeof(active_cqns)); while ((eqe = mlxsw_pci_eq_sw_eqe_get(q))) { + cqn = mlxsw_pci_eqe_cqn_get(eqe); + set_bit(cqn, active_cqns); - /* Command interface completion events are always received on - * queue MLXSW_PCI_EQ_ASYNC_NUM (EQ0) and completion events - * are mapped to queue MLXSW_PCI_EQ_COMP_NUM (EQ1). - */ - switch (q->num) { - case MLXSW_PCI_EQ_ASYNC_NUM: - mlxsw_pci_eq_cmd_event(mlxsw_pci, eqe); - break; - case MLXSW_PCI_EQ_COMP_NUM: - cqn = mlxsw_pci_eqe_cqn_get(eqe); - set_bit(cqn, active_cqns); - cq_handle = true; - break; - default: - WARN_ON_ONCE(1); - } if (++items == credits) break; } @@ -821,9 +796,6 @@ static void mlxsw_pci_eq_tasklet(struct tasklet_struct *t) mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); - if (!cq_handle) - return; - cq_count = mlxsw_pci_cq_count(mlxsw_pci); for_each_set_bit(cqn, active_cqns, cq_count) { q = mlxsw_pci_cq_get(mlxsw_pci, cqn); @@ -837,6 +809,13 @@ static int mlxsw_pci_eq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, int i; int err; + /* We expect to initialize only one EQ, which gets num=0 as it is + * located at index zero. We use the EQ as EQ1, so set the number for + * future use. + */ + WARN_ON_ONCE(q->num); + q->num = MLXSW_PCI_EQ_COMP_NUM; + q->consumer_counter = 0; for (i = 0; i < q->count; i++) { @@ -1077,7 +1056,7 @@ static int mlxsw_pci_aqs_init(struct mlxsw_pci *mlxsw_pci, char *mbox) mlxsw_pci->num_sdq_cqs = num_sdqs; err = mlxsw_pci_queue_group_init(mlxsw_pci, mbox, &mlxsw_pci_eq_ops, - num_eqs); + MLXSW_PCI_EQS_COUNT); if (err) { dev_err(&pdev->dev, "Failed to initialize event queues\n"); return err; @@ -1414,12 +1393,9 @@ static irqreturn_t mlxsw_pci_eq_irq_handler(int irq, void *dev_id) { struct mlxsw_pci *mlxsw_pci = dev_id; struct mlxsw_pci_queue *q; - int i; - for (i = 0; i < MLXSW_PCI_EQS_MAX; i++) { - q = mlxsw_pci_eq_get(mlxsw_pci, i); - mlxsw_pci_queue_tasklet_schedule(q); - } + q = mlxsw_pci_eq_get(mlxsw_pci); + mlxsw_pci_queue_tasklet_schedule(q); return IRQ_HANDLED; } diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci_hw.h b/drivers/net/ethernet/mellanox/mlxsw/pci_hw.h index 32a4f436d24d..6bed495dcf0f 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci_hw.h +++ b/drivers/net/ethernet/mellanox/mlxsw/pci_hw.h @@ -43,7 +43,7 @@ #define MLXSW_PCI_CQS_MAX 96 #define MLXSW_PCI_EQS_MAX 2 -#define MLXSW_PCI_EQ_ASYNC_NUM 0 +#define MLXSW_PCI_EQS_COUNT 1 #define MLXSW_PCI_EQ_COMP_NUM 1 #define MLXSW_PCI_SDQS_MIN 2 /* EMAD and control traffic */ From patchwork Tue Apr 2 13:54:23 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614152 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2047.outbound.protection.outlook.com [40.107.94.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 37B4986264 for ; Tue, 2 Apr 2024 13:57:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066277; cv=fail; b=a4Mo611diTFaQmWDLws4kYX4Xb9l+hu2YAg0Qg1efOmVL2aKf2yQA/PhR83BX1YPofe3WLLHccQStl7KTBkyG8pAnuHi0XWAWOzlS0c/LPukDdAYIpO2zBFEUNLguRc72ZCWQEa5ZPFeW51pD8tdpb/z6oRgNfXrhJgHZFhCOEY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066277; c=relaxed/simple; bh=xfI8achkoHTZD197SIN3sFIkkG4HozKjChveRjQGLtM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cO36Prdisyx3YgGbCYkXDUgyahW/UjLPGDLsg8tscZ9SM3XXEJ0itvTcBftH2lcORYLf7wehiffxhVLuzOeARbA6Bu5PkOyeWgptk79qL9x3wE4jKIzrm8Eh4pc/B4RZOBvypZovX6W2O8Ee/ZZfcprZTqKX4w6UPUKCEkSU+fI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=muimURm3; arc=fail smtp.client-ip=40.107.94.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="muimURm3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hk03bkFNSGexI3hPeLecTNnIEyhju2QbLcoN2c+Rso4Uj0JF+Xgi4qxFZQyiD+matTF1p046XtMdubRkTuzMGi8IJQZPrGHNn7tyoM0sTyRhveAnFTxmeXRoAdAeiX29PsI0dZXpOEw+PgblU6755rnlwwdur0vXLe1HymxP8/mrG0V8oXNCtmDlnSW2Mpls4MYMcdyxdysqlcmYJ03gytEjHbrLv19QPzGS+WWpx0E3NAaHaDEDLxJX6b7Ka+fEiuhnYWQG0u5FQmlobkx56R9RKHllQtOtTCHT/sUUsp3iEV6pNvbQunZj9uwqmuXAnDgfO1ASmjQkeN2WQb45ew== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=o2vJturHBXV2yuDozLPNRKuwMeAJfmHofauGZAkZCZ4=; b=CQzHpSCk69DkZeS2shl7Q62fvX8N7cd0WIVEBPl1b5IiZrIj8NCgqjaXEqFSApj8RzoRsSJgz6U3rLMS1L4C6dRfWIkTcWT2mqogyaSJ5Hl16zaC8yldJg36EwbWFjjSco40ok3MthgjgX439KKwVSxJIjfivnNBHmaIvycMFL5m8TbofC0twzT78AZiGZ4bsoF7V6trovW/vRSU0lltsZR8VknXgtrkgYAP7FfZsXmpVOScNYrPyy4k3AD/s9iMUtLCSx6erP77VIVfMqn/A4vyq4T/5L/QwMUXdY4kD0vbmZN6wtgPheYmsUKLPLSE08AsHzgvDp6rsIVmt7r/eA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o2vJturHBXV2yuDozLPNRKuwMeAJfmHofauGZAkZCZ4=; b=muimURm3DOGmV+zZMWWrvRGPltfHL1RX6zwcsOR3eMdrkoXuwW4i6491xSnUimbFaIUXmfgE3VaXMabyno1sYaZQe6ZUlGvQOOAGWvpzy3vDgF4tF+jtQTxco5RyCBXAa4CrWbvlmczcF5YuWDxNzideObnedOrXsKjR5StSKxupkz3KnfZvOq+TtF9S0Eof/OpOzyAaw4n7Dp9k8NZbWH0oivNuh0PRaqspzVE+D513avTEOypFSs3vF6chs3/q9EXKb7TVlCSq5Yk0/QxkkNhVSLZJE0I7REiA6NERm6A9TcsaqhKChvq2vAT23boL8lWwqIBhsSisprK73Z5gwg== Received: from BYAPR05CA0067.namprd05.prod.outlook.com (2603:10b6:a03:74::44) by CH3PR12MB9195.namprd12.prod.outlook.com (2603:10b6:610:1a3::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:49 +0000 Received: from SJ1PEPF00001CEB.namprd03.prod.outlook.com (2603:10b6:a03:74:cafe::29) by BYAPR05CA0067.outlook.office365.com (2603:10b6:a03:74::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.25 via Frontend Transport; Tue, 2 Apr 2024 13:57:49 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00001CEB.mail.protection.outlook.com (10.167.242.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:48 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:34 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:30 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 10/15] mlxsw: pci: Remove unused wait queue Date: Tue, 2 Apr 2024 15:54:23 +0200 Message-ID: X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CEB:EE_|CH3PR12MB9195:EE_ X-MS-Office365-Filtering-Correlation-Id: 511733d0-375d-43bb-3cd1-08dc531ce173 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5k6eq66fbYhjU3pEMUZxF3EbomC/1abR2m4c1ULO14GJ6kSSSt6JyDcLUCCvfsJXmZuX9GJYdE9gZayCrHtUJ61wVBNoqSSJX65ZAiUIZLEW/5/m+fYjSeDb3nyFPri79Ah99WZaWYmUzxthgIUfczmGlUVpRQaCztEMjffnxS7bBnnaSzm02D0bEBVT14bQ+TsyaBsYKIM40Bm1BTsE9tHUAmHnYIEaNPRYpfkwAfa5/1rF4BGUAnlGmjMNgYsWmPg6mlast31B50OF1sXSNzk4AnRIA8hWdiwNUsVok+BNhdFteQnh12HFiMvgM8KSEZDFq1M0okty77Dm6vFyN0alV3BhZ+4Z+uCN64ipdjnRTmjMtckzYL0NhjzCKgUJ8M6p2GNvcxBgVLMShMCgkzMcKHb6IfUwzfrIh1gYeg4k/MuHLEQl0dExYS6arghQyTQpv4WQ8B+8BragVAr2UwOvUQ/0CNYgaYAozyTCZxfzzB8Y35NkX6rypE4xEGz+5AyFtmndn439MbdZ6+hOc+qKOe/BLBItvele1Dgt4huS08PogWIVk/9qpBu2FcE+FrnXUQ2HjXvQEx18kpSNg9OEUCvapa+tgr1y8y13qZ0wolMqyPmGZP/bhPlsIFEVUN4Ho960uidtRyVSX9ykhFl2qGdoNpOsARdtNIMOLeQ2uAyhseDBapssn63sNWWYxH+zODpmE9ME830LrjFYANYAyEmKmIRFXDVnMsozlHc5cb2YTPKkEbT+c4LI5Hsz X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230031)(1800799015)(82310400014)(376005)(36860700004);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:48.6070 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 511733d0-375d-43bb-3cd1-08dc531ce173 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CEB.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB9195 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen The previous patch changed the code to do not handle command interface from event queue. With this change the wait queue is not used anymore. Remove it and 'wait_done' variable. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 3460a4ef7d9a..7f059306af5a 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include #include @@ -111,8 +110,6 @@ struct mlxsw_pci { struct mlxsw_pci_mem_item out_mbox; struct mlxsw_pci_mem_item in_mbox; struct mutex lock; /* Lock access to command registers */ - wait_queue_head_t wait; - bool wait_done; struct { u8 status; u64 out_param; @@ -1819,8 +1816,8 @@ static int mlxsw_pci_cmd_exec(void *bus_priv, u16 opcode, u8 opcode_mod, struct mlxsw_pci *mlxsw_pci = bus_priv; dma_addr_t in_mapaddr = 0, out_mapaddr = 0; unsigned long timeout = msecs_to_jiffies(MLXSW_PCI_CIR_TIMEOUT_MSECS); - bool *p_wait_done = &mlxsw_pci->cmd.wait_done; unsigned long end; + bool wait_done; int err; *p_status = MLXSW_CMD_STATUS_OK; @@ -1844,7 +1841,7 @@ static int mlxsw_pci_cmd_exec(void *bus_priv, u16 opcode, u8 opcode_mod, mlxsw_pci_write32(mlxsw_pci, CIR_IN_MODIFIER, in_mod); mlxsw_pci_write32(mlxsw_pci, CIR_TOKEN, 0); - *p_wait_done = false; + wait_done = false; wmb(); /* all needs to be written before we write control register */ mlxsw_pci_write32(mlxsw_pci, CIR_CTRL, @@ -1857,7 +1854,7 @@ static int mlxsw_pci_cmd_exec(void *bus_priv, u16 opcode, u8 opcode_mod, u32 ctrl = mlxsw_pci_read32(mlxsw_pci, CIR_CTRL); if (!(ctrl & MLXSW_PCI_CIR_CTRL_GO_BIT)) { - *p_wait_done = true; + wait_done = true; *p_status = ctrl >> MLXSW_PCI_CIR_CTRL_STATUS_SHIFT; break; } @@ -1865,7 +1862,7 @@ static int mlxsw_pci_cmd_exec(void *bus_priv, u16 opcode, u8 opcode_mod, } while (time_before(jiffies, end)); err = 0; - if (*p_wait_done) { + if (wait_done) { if (*p_status) err = -EIO; } else { @@ -1963,7 +1960,6 @@ static int mlxsw_pci_cmd_init(struct mlxsw_pci *mlxsw_pci) int err; mutex_init(&mlxsw_pci->cmd.lock); - init_waitqueue_head(&mlxsw_pci->cmd.wait); err = mlxsw_pci_mbox_alloc(mlxsw_pci, &mlxsw_pci->cmd.in_mbox); if (err) From patchwork Tue Apr 2 13:54:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614154 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2066.outbound.protection.outlook.com [40.107.237.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5EFCC8564C for ; Tue, 2 Apr 2024 13:58:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066285; cv=fail; b=VmxrdXX3UlWn8mKALfY4Cw9xjocz9fD8AoTif8x2ztxyQNvJgNRk9ootmF5tpf+TzpPkKNzn3SmxexwLHJ7PO6BGDDAZKX3gETvS2vZMWyKIJtbNWR7GQATnsFnYbOGc55eFAo9d2JQ+8vTXgxWf7/0dlo3pRsAmPqRiWnGoXP0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066285; c=relaxed/simple; bh=CapeTfEBOdvypIoN7M7fiISzJTS3AoJp7Q0QMfAhy1M=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=iNovGhljOSU/nqPdSH5rvEIVoafHJuSSUBwYpB/dekP0F/HTRfX/z2yT2X1bNNuILwauJqzD0iqjlUQKu+0K4fZY6ypm/1d+JKtxj1IYQO6NR8FceCySy61iwTb48fi/gbwMuOhzPsdTiV6H3MyKODEZI5aOYrV5alkZr83U3oE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=kfuV07kY; arc=fail smtp.client-ip=40.107.237.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="kfuV07kY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ARlgSZmtKYKQeOTCyziPFw9e2JH8xrGXgEUAjS41rYqC/1FGh9VzKOXMfBa9SScieJg/QCDO3gN+lH2bZnBe3AGJMDmxt+0ps2HnvVn9M1t97lvfNaaieTudknX3sogvYJD2muCISfZwOU8Lzqz5dr/XzV/IQP5PKCaHgBMuF8baFwZsJ3TFsicaolaw04MpZHkqy3gnM70jtM6zO+98af5vWnnPdVNQizUJ8HgyEHKfvUcqm1unaCutEaJj3smvo1qTtqSY7SYZRTABgVElKAqiipID5vJPMt3MLvCWnUtG0gDa7SOldcTLvIe7WSqhwwkej614LTBCt9Jxjhd8Fg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3D838Yk2zIxAGAPhmGteWGD+7VYgkMnzlnVSEvPInpY=; b=bhprdWKRU7QThrK24PGwtJpKofbcDM6UBTjQcP6Nh4zL50GXeukuEX5FFTTrZs86CBhrdihfPYb0SWfpgnNkLNp+qw2KGxciNxzgBijX9qL748loTEyzqVYjlo/9JjePXI2gnO51YTXwxzNziwA4wwVzdFzLFE85/sHoRx0bz6gedkNEtvtHDnZegkbnU5BBnc7IVfezin/yBqAPV6aLDEnPuCU19N5Wc2jga4gq2/5PP2pCKOXsYO2+wGsp49X9NB6fyFEuotbeP30CxppXcSX+fNwf/vRbAJC4jbRRJnk5Nxwl8NjvOH6BNJ6hwbme/9LMQTnRflUtMT4LDYWAMQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3D838Yk2zIxAGAPhmGteWGD+7VYgkMnzlnVSEvPInpY=; b=kfuV07kYAOM25YWpaNk9NjfkMykbufqYNLopq6No1FwJ5HNk7Nmt67OP0ouvqYS1I/LaU8ojYQx7smgtMEqcFYCBNkc8VPYoc/O0QTu4/K43iAJMUAcT8D1PGRFRbJf1sUNzbmx1HzO7ZCC0DrQkQ7iLyH8V4Qj/OGdEetpu6fD7OpkGtj9A2TMTSXBgSWNcJaynFYCKxpLraLKCeYKwb5gDwPAzkc7PYjYx51J3UJFdSpff8OBCZ/7reki09GqTnxzOcnSq2saR4qot4ALn63P4DmcbLId6zlj1I4mYc0tcEcxDOzO9Ckj7RCSuEwMAHJHI0xfHuU7/8xPcJJUcLg== Received: from CH0PR03CA0035.namprd03.prod.outlook.com (2603:10b6:610:b3::10) by PH7PR12MB6667.namprd12.prod.outlook.com (2603:10b6:510:1a9::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:55 +0000 Received: from CH2PEPF0000013B.namprd02.prod.outlook.com (2603:10b6:610:b3:cafe::d3) by CH0PR03CA0035.outlook.office365.com (2603:10b6:610:b3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.35 via Frontend Transport; Tue, 2 Apr 2024 13:57:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013B.mail.protection.outlook.com (10.167.244.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:55 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:39 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:34 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 11/15] mlxsw: pci: Make style change in mlxsw_pci_cq_tasklet() Date: Tue, 2 Apr 2024 15:54:24 +0200 Message-ID: <7170a8f4429ecb5a539b0374c621697778ff8363.1712062203.git.petrm@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013B:EE_|PH7PR12MB6667:EE_ X-MS-Office365-Filtering-Correlation-Id: ee9ef34a-22f2-4e83-abc7-08dc531ce571 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: B21Wf/kzVaEKt09tN+iVfRTbex3FVS1OufccRFW45wLq3LWAmWnbv+h3dXEXx13mAWjVghJmWuSmGPoA77OrSoE+Zh8VNfFcp3vnivfJbtDSlZtyiZr1dXYiFLhGuUyT/1E/VvKEmSqQHCeI4JVt2eaSMWG9wiZavbMu0l+pJ5Ssg+MXalgt7CoLbYn5e7jH78k1RjaRw35LbIEzGuiTE/bXjhPXREJ5JYbWFLI4Jw9+PQsyO0K0j+HP/wpab2jzyNy8z3jmY5yy7+mJM7DYOMCgS8pqoeuXFhF5LijqmdhK8OUx0Uy3e7qdCKJO94rvivTZfwaf0UDxssDrMPQUYd9NMP9rNMRyjVHCNcGRcGKY2We7Pt/rqVLUKXNU+aQoP7tT6RVAXfF7Mm3aOR0kSVoiH/5Ypn8StpX3IpQ4sHlMCAtd1JG8KvykBYz2zdcPv+m9VzK0Ur3xctNM6+1iMp224GXyR03/7rCWmx83HKFiOFCX3lHpZnrI5PEmZGzNVGdJk2AMVKSkPQEyHD7idZK6+bB2LwMN/GNI7JWp6lINCMC9vJqmZkx5Hh8q/dInf7EbHcG02345ltL1cfFI99zD4k7XJD2xDjenBL92Uzqoep/uO3PfgOWZ6UZ8a3HjjtWE3nCUV6r+WrEaOH+imnSjzfsuVrVxUn0VdHg8B1OvXDTEl6Gj35Dxx79P5IvA95xEmu806zzh74L8uk/UqHtz5OAxu7FEv4/IcT8NAe72d6b8G8bhaiiEbP8uuW3r X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(1800799015)(36860700004)(82310400014)(376005);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:55.1670 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ee9ef34a-22f2-4e83-abc7-08dc531ce571 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013B.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6667 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen This function will be broken into several functions later. As preparation, reorder variables to reverse xmas tree. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 7f059306af5a..7c4b6e66f1fb 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -662,9 +662,9 @@ static void mlxsw_pci_cq_tasklet(struct tasklet_struct *t) { struct mlxsw_pci_queue *q = from_tasklet(q, t, tasklet); struct mlxsw_pci *mlxsw_pci = q->pci; + int credits = q->count >> 1; + int items = 0; char *cqe; - int items = 0; - int credits = q->count >> 1; while ((cqe = mlxsw_pci_cq_sw_cqe_get(q))) { u16 wqe_counter = mlxsw_pci_cqe_wqe_counter_get(cqe); From patchwork Tue Apr 2 13:54:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614156 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2045.outbound.protection.outlook.com [40.107.100.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B79A126F16 for ; Tue, 2 Apr 2024 13:58:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.100.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066288; cv=fail; b=igBWZ72PsVXG0R9MJuBMvqj+ZFQGWxRTh11ceaj4c3XIgljfuVfTDC1Jz7z7XGJforNOYInIVPlXa1tWdZrA9/gLoArNWGWsPP8UWOppkL1LzerSMKYdHA9fU/4yhPasERZjcc57pL9mxdFnLK0YTbSMYBkKFbbvk+krmxvzLqs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066288; c=relaxed/simple; bh=dM2/jVmO2YWIixFnEhbWHZzLUGp0pJVVV36LMsAJhAg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JJeEm+5uR+H3Ms7uAipR3EA+Il28p1KTem0s7P7gCHpjnnfByFAH1VnpjvJeCLddpy0SjlTaD71cny8kzs1XLXhWAJ2lXIm3Ih5Xh9ojUraYnZCsq8FBTIf2Nv47j8LTd2HOdFEbpNvULF0Js9BAZ1IrUULlS3yCj3M8iqpTFgQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=f4JHFppB; arc=fail smtp.client-ip=40.107.100.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="f4JHFppB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kEe1Zhkp1ibPOyasgFnYgeiOQq+IWHL7v9zY7V7UFpcLgQ9QQFi8c1G6JEesSKfBzdnH8CGSm4fxso5JlSoBF0OWwmX/QL9eipu2yZz3ykBxY45/0acPrAUjbfWqJZIx/kCKLit8XNNgwkghzSdOb3dp5pANChLopwTxDbH6DhatyhmG2Q5S4vIaUIWEHp/mbmC0kenZnlrLG2W6pAggTDlWqL4LnaV3praBx7vBMPbyCTgpkr31e5u2JhTPJHjD4Z077K3NA4jcmg2Ra/HevYG5eeptXBY4hb47+JD4xTxFRGDrNQx4MP6KKLWR3UbX/fEV452LiDMLfyAEjL09CQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5+/OLYVfnqL2m/UACJm22PvVYxFCOF4ziByRv5T9pG8=; b=eyiY3b7fvWdHtPVtsRpSWWnM/3rVJ2mfPDr6+3iogAB7XtlWNZdQ3XwWUTfiMawJRU/fprRFFF/QmEzEFQCw0iqQ/fRaDKQjHexWNl1yumYigjdo9aNG5fZofEfXG7au3Q15OFKQ5TtVkbNsbddmR1d/W5XqdKQLt2AnWB6bpx2mIlK+cD9RXgpm00zIYK7RGs2Lt++Gqb4xj84XYnpiDmOldSeO8GYvT0a1osNmpTlYRxz/IthiDXkwAAT77Dvnos5knFy02Yg6OwsQzLZDK7M4SuQ5ndzafqlVWoqPf3FTCSTSczowG3ZqgAHhIakSCyWPw6pD6JJzt20LT4WKRA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5+/OLYVfnqL2m/UACJm22PvVYxFCOF4ziByRv5T9pG8=; b=f4JHFppBOJkXVrU+Sq5L+WyC6xSCa+mDQZ19NzER7Q6Lbk2goTjmZy4fWgWwrmKYFIRU6HZOkPHAzPXIXJISBt6PpNm0kmgDy5pSDbCZtWgKyhL44SkMX6pmHrNhKYmBU37HgqQ82rK4FYa22F+3Edjh84MbfbT+jHwGIfXA9bNFXS/wwaK7nBE82MqvYW/0QekNnYiFLQ0TkUDr+LDOT/HIFx3Xr9zxQVfbmaBrRfeBJNTEBcAHH+4XfOqekyTRfCcFUDMGOQ2rFV+aMrudliKgIGffBqtHuzNVenBHftPq0tQf1QzrNYf1h1cnPQKI+rSDiGNq1m7OkYRBP0CGKQ== Received: from CH0P221CA0033.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:11d::16) by IA0PR12MB8713.namprd12.prod.outlook.com (2603:10b6:208:48e::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:58:00 +0000 Received: from CH2PEPF0000013F.namprd02.prod.outlook.com (2603:10b6:610:11d:cafe::52) by CH0P221CA0033.outlook.office365.com (2603:10b6:610:11d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46 via Frontend Transport; Tue, 2 Apr 2024 13:58:00 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CH2PEPF0000013F.mail.protection.outlook.com (10.167.244.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:58:00 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:43 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:39 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 12/15] mlxsw: pci: Break mlxsw_pci_cq_tasklet() into tasklets per queue type Date: Tue, 2 Apr 2024 15:54:25 +0200 Message-ID: <50fbc366f8de54cb5dc72a7c4f394333ef71f1d0.1712062203.git.petrm@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000013F:EE_|IA0PR12MB8713:EE_ X-MS-Office365-Filtering-Correlation-Id: ca614a58-f2a6-4227-d683-08dc531ce889 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GRBvoWJUC+/Ae6unauATa7LxplwWSCwwVwjteLS5hgsPP3N93+mk1snKxFq647MbgFj/F/x6/1cdzcBo4LMf8z6r9QMvOO1I6eMElkpTrWG1/zLxnSKj2fLf+MekDV2tgmBEHE3xOdExYdVdmb6wjtWeUIAHw36hXdZC2eON4qDBxaFLlP5icoATH5in7xtM0UjfnVOcKB7tNpVLyUql2daJsB2/RLnLtYojkxnb0dS1qZhBK1Rl8FMvl/3DqXsgIsAEoLpdz0zfRLtqEz2glXnM8ekPEwGE2JAO2uJsrhj/oanskVhpw9jSG2gAVDv0eA1yckMNfJ2RZlAYUBBjBJz0CB/9WoFvp6mUTCNc6kP/a1VqB5SwoBEcwWroAvVSZ1mcc1WeUxjVvfXKAsnMN4y4YBHCSeWO0VdfgP6xzhPdGjd1NEC05mpUt3R8nze40bGK8Ij7j8vjDUALJ5t4UCXogPjCuWw3T2mDThjsovs/KcjIJDrluHfjTQaVg9uQpdkGUEaQag8eUe9/4mcDYuo2Ra0p5a2zrBVzVdvzBpZmxIK+oRx0XhBhqPLIpbMU37URxk58xzdj3hThmWKz1DZK7ymzCh0Pv5xBlNR0LKD3jJrvyFXQYL25HaET2xq4wns64FXIaSItzTcbPhyEijV/JaFRxjHXmY3RUq/dnTfCq7yqae8gy5FrzWv15ysunCRipGM/tIogQ2lmjDItmp70m80RDgJcxVbLFATdNDrwTuvA720hA0HvddxfJMG1 X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230031)(82310400014)(36860700004)(1800799015)(376005);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:58:00.3742 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ca614a58-f2a6-4227-d683-08dc531ce889 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH2PEPF0000013F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB8713 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Completion queues are used for completions of RDQ or SDQ. Each completion queue is used for one DQ. The first CQs are used for SDQs and the rest are used for RDQs. Currently, for each CQE (completion queue element), we check 'sr' value (send/receive) to know if it is completion of RDQ or SDQ. Actually, we do not really have to check it, as according to the queue number we know if it handles completions of Rx or Tx. Break the tasklet into two - one for Rx (RDQ) and one for Tx (SDQ). Then, setup the appropriate tasklet for each queue as part of queue initialization. Use 'sr' value for unlikely case that we get completion with type that we do not expect. Call WARN_ON_ONCE() only after checking the value, to avoid calling this method for each completion. A next patch set will use NAPI to handle events, then we will have a separate poll method for Rx and Tx. This change is a preparation for NAPI usage. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 86 +++++++++++++++++++---- 1 file changed, 74 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 7c4b6e66f1fb..1839ab840b35 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -35,6 +35,11 @@ enum mlxsw_pci_queue_type { #define MLXSW_PCI_QUEUE_TYPE_COUNT 4 +enum mlxsw_pci_cq_type { + MLXSW_PCI_CQ_SDQ, + MLXSW_PCI_CQ_RDQ, +}; + static const u16 mlxsw_pci_doorbell_type_offset[] = { MLXSW_PCI_DOORBELL_SDQ_OFFSET, /* for type MLXSW_PCI_QUEUE_TYPE_SDQ */ MLXSW_PCI_DOORBELL_RDQ_OFFSET, /* for type MLXSW_PCI_QUEUE_TYPE_RDQ */ @@ -658,7 +663,7 @@ static char *mlxsw_pci_cq_sw_cqe_get(struct mlxsw_pci_queue *q) return elem; } -static void mlxsw_pci_cq_tasklet(struct tasklet_struct *t) +static void mlxsw_pci_cq_rx_tasklet(struct tasklet_struct *t) { struct mlxsw_pci_queue *q = from_tasklet(q, t, tasklet); struct mlxsw_pci *mlxsw_pci = q->pci; @@ -671,23 +676,54 @@ static void mlxsw_pci_cq_tasklet(struct tasklet_struct *t) u8 sendq = mlxsw_pci_cqe_sr_get(q->cq.v, cqe); u8 dqn = mlxsw_pci_cqe_dqn_get(q->cq.v, cqe); char ncqe[MLXSW_PCI_CQE_SIZE_MAX]; + struct mlxsw_pci_queue *rdq; + + if (unlikely(sendq)) { + WARN_ON_ONCE(1); + continue; + } memcpy(ncqe, cqe, q->elem_size); mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); - if (sendq) { - struct mlxsw_pci_queue *sdq; + rdq = mlxsw_pci_rdq_get(mlxsw_pci, dqn); + mlxsw_pci_cqe_rdq_handle(mlxsw_pci, rdq, + wqe_counter, q->cq.v, ncqe); + + if (++items == credits) + break; + } + + mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); +} - sdq = mlxsw_pci_sdq_get(mlxsw_pci, dqn); - mlxsw_pci_cqe_sdq_handle(mlxsw_pci, sdq, - wqe_counter, q->cq.v, ncqe); - } else { - struct mlxsw_pci_queue *rdq; +static void mlxsw_pci_cq_tx_tasklet(struct tasklet_struct *t) +{ + struct mlxsw_pci_queue *q = from_tasklet(q, t, tasklet); + struct mlxsw_pci *mlxsw_pci = q->pci; + int credits = q->count >> 1; + int items = 0; + char *cqe; - rdq = mlxsw_pci_rdq_get(mlxsw_pci, dqn); - mlxsw_pci_cqe_rdq_handle(mlxsw_pci, rdq, - wqe_counter, q->cq.v, ncqe); + while ((cqe = mlxsw_pci_cq_sw_cqe_get(q))) { + u16 wqe_counter = mlxsw_pci_cqe_wqe_counter_get(cqe); + u8 sendq = mlxsw_pci_cqe_sr_get(q->cq.v, cqe); + u8 dqn = mlxsw_pci_cqe_dqn_get(q->cq.v, cqe); + char ncqe[MLXSW_PCI_CQE_SIZE_MAX]; + struct mlxsw_pci_queue *sdq; + + if (unlikely(!sendq)) { + WARN_ON_ONCE(1); + continue; } + + memcpy(ncqe, cqe, q->elem_size); + mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); + + sdq = mlxsw_pci_sdq_get(mlxsw_pci, dqn); + mlxsw_pci_cqe_sdq_handle(mlxsw_pci, sdq, + wqe_counter, q->cq.v, ncqe); + if (++items == credits) break; } @@ -695,6 +731,32 @@ static void mlxsw_pci_cq_tasklet(struct tasklet_struct *t) mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); } +static enum mlxsw_pci_cq_type +mlxsw_pci_cq_type(const struct mlxsw_pci *mlxsw_pci, + const struct mlxsw_pci_queue *q) +{ + /* Each CQ is mapped to one DQ. The first 'num_sdq_cqs' queues are used + * for SDQs and the rest are used for RDQs. + */ + if (q->num < mlxsw_pci->num_sdq_cqs) + return MLXSW_PCI_CQ_SDQ; + + return MLXSW_PCI_CQ_RDQ; +} + +static void mlxsw_pci_cq_tasklet_setup(struct mlxsw_pci_queue *q, + enum mlxsw_pci_cq_type cq_type) +{ + switch (cq_type) { + case MLXSW_PCI_CQ_SDQ: + tasklet_setup(&q->tasklet, mlxsw_pci_cq_tx_tasklet); + break; + case MLXSW_PCI_CQ_RDQ: + tasklet_setup(&q->tasklet, mlxsw_pci_cq_rx_tasklet); + break; + } +} + static int mlxsw_pci_cq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, struct mlxsw_pci_queue *q) { @@ -727,7 +789,7 @@ static int mlxsw_pci_cq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, err = mlxsw_cmd_sw2hw_cq(mlxsw_pci->core, mbox, q->num); if (err) return err; - tasklet_setup(&q->tasklet, mlxsw_pci_cq_tasklet); + mlxsw_pci_cq_tasklet_setup(q, mlxsw_pci_cq_type(mlxsw_pci, q)); mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); return 0; From patchwork Tue Apr 2 13:54:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614155 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2054.outbound.protection.outlook.com [40.107.243.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2F6F5126F33 for ; Tue, 2 Apr 2024 13:58:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.243.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066287; cv=fail; b=geXTM/MCLgFoI6mkt9DJqNZwt2aZfXFs+WK3SzdKJ26xNntVGiNa/ZVsevYqv88ITVFcSWtg9ZiJetl2LozVdh1ytfhJsfINRStlvKxbN5HZusInNg/ss7SEsNYOCHc6orr0m0C2cJtjo+w2HeUwQvM6ePYVu5LAWUeSmCnZ8/g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066287; c=relaxed/simple; bh=Mi+DmfUSWiDH/o/GDggIrLjCvHkisO5U0fpYgRwM8rk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=CFhzKk2hTCk/hQttNht1oj9RBwg+dC2ApRVQDB6Xu4djEEis/j95iyabfJRIHdCINXJJau3iSs5+hP2KW8u97RHHCRkWEN8Wh05B5G+ptCmGcSNzfo+T8fd/SN1PLbBOTkUioqGzLxqJS/SmIjB3akakr3Fq9qqcqik9wd3CVuU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=DhMWmZam; arc=fail smtp.client-ip=40.107.243.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="DhMWmZam" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Znqg2rCb2e0UtCYHQbUSH1KSgwuj7PCkCFrQutKfLL1o6KBuYlzIkYGSdCvimYnAK8FaXhJwTNu65AQ+21+v6czfinbVHJAsazY62h3UyDQzm/FxhXgPXkHi5cE2HoudGHGN9YdMYOLbQXOsb8M8Ok9d2+Uszrvw3tQOWKyKv3/hIqmq9zaNDuiG9Rl/n37NbiouQzgUtDhogSMQdcBIFmXPGRmRo30VbqZgJ9EoccDRxcuXfGfbMyvEtMCT3i5Xr7RdPJ4HyHlZYFw4StX7qzDGzjzwe0QX+5czC/tubbq7j0jLhvD2zdQOxlAkZ5nE2s0Piz4o5rjTHWHf6ZS8jA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DaMgLSRjyr81vuKfjA3CbCdNQ5kb+Own/3JHz5tvW00=; b=VUDpV13H+HIyLJhoPxM8iJLU0O4UYddGh/mjE7ueFJv7as2x4zeuy6hS/aiJ4g7Abt3lwv4khinPaqp3J0XTxh6ruVGLOlyrTDiWPbt5nTMX17gS0Ssw533vlwdvefak0uJvrmRTXBnwjHA+ECOUgylsMeOTasUnGbz6ec7b6wfEHgkBEl3kQO6JxsX8dmHlz02caoLvmQ9HxDVpcCtB+ywmP496MDtnC85VVy8RNi5ZkAmbnOZu+rLUlF+elcXg9TgZNeXc9W/55NF1a31HKS5MC9bHOGTCJ5nimT3EO0iM6tBjJc3IKpvl/eGKABFY2b/zVBo2PLwlf6CW7nE0Qg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DaMgLSRjyr81vuKfjA3CbCdNQ5kb+Own/3JHz5tvW00=; b=DhMWmZam+1ljCkgdHrfSvfxZCOsJAVc1HHCsskS3mJxUymWTzMQuIrtpfvug8VZO+dO4mAEMiLCupeZQpBg2tho5g7IMqp+iDU1gij9i3xw48bq6MXDgiRNCAPNG3ipWuYrp8jOI5D6wFYeYEo7G0AqRbaHxzZFEDni/pDAwPqtXuFmbkjBP9mwx1/hzd7AZMuZcVu/eFSRs17PVSYiS65LnrDM16mRIdAKyWYfs5XJ751rDHsoZOCkYkGLuX6ChPcwyGjdHVG00MKMDvGtl2Y6EFeePFER86VrAqO9h8ryqMe2esKqHs9uiBdEBKepfIZBxKOsRwqaHR7YcsOnzoA== Received: from BYAPR21CA0005.namprd21.prod.outlook.com (2603:10b6:a03:114::15) by DM6PR12MB4041.namprd12.prod.outlook.com (2603:10b6:5:210::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:57:58 +0000 Received: from SJ1PEPF00001CE8.namprd03.prod.outlook.com (2603:10b6:a03:114:cafe::86) by BYAPR21CA0005.outlook.office365.com (2603:10b6:a03:114::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.7 via Frontend Transport; Tue, 2 Apr 2024 13:57:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00001CE8.mail.protection.outlook.com (10.167.242.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:57:58 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:48 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:44 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 13/15] mlxsw: pci: Remove mlxsw_pci_sdq_count() Date: Tue, 2 Apr 2024 15:54:26 +0200 Message-ID: <0c8788506d9af35d589dbf64be35a508fd63d681.1712062203.git.petrm@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE8:EE_|DM6PR12MB4041:EE_ X-MS-Office365-Filtering-Correlation-Id: 87ac3950-1e13-4afa-2d1c-08dc531ce730 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QUU1Q9hMhsTrDZ3nPMAbq7VJejiTK0WID/sM3GHWK3V69P7SsB4Pr1jXjbZz4lbYLqxt1k00uae9iFDR2AsNxXEtHqhPNqU1R9uJ0JjZjvMTt0POd6bxIDF5TQdmaTKHLSgt3ysPcC2H5vRV6dQbuFALqH3+hkLYFYceopB7z2iIQ888W/M5370oslHFSjQQ2t89syzshvX8aWrwefGpVY6sUezfU4PLNonZejE/CT8c3JtQV9hQvl0MvjVwiStAkieShtz2ZSF4M4K4uTIhWyJwYF0fU9OmLOlj8/g9NISmd9vnbjxMF+BIkGX1SxcJTFPnEt6gSm2RSVcmyRk06H4nasZf1vsAlhaufpsAIDIsdjom4sCy9Xg50KH2+KoaJW2Zm2rQTAlKEDCe57f/ciatGoq1vTSScQq/jLK4abFOW8xLw42Q9Vx6C5ng4jOCERU1hy3m/vAf3oswf0eMLeiNQUjfp7wF/IJIp2kUYsdoZbKbef9KPwTwj3kKCxxW3XFHuSJ7C3ZjMPqearx3ex7moAXD1zKdwC7hWyb1jxwdIfe1D8GlQ80f5Oy00bSCbb3bkK6lgUXvM0LUsFgcPYIExB4/J6V7Tb9Gf9cZXt5j7dk3XZexvUFjhajMwFBVphf+uvGF+agSTE14k346eXNJqrCVKYXTxepH44YOSJmK6k8SdMMVN3Zw3HRML4oR6gtnYkKpbOrZg6TFNpjYD6JApx8s1xqEyUi2SCjdsnGRX123Ki7wChk64pHYDSVQ X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230031)(82310400014)(1800799015)(376005)(36860700004);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:57:58.2339 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 87ac3950-1e13-4afa-2d1c-08dc531ce730 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CE8.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4041 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen The number of SDQs is stored as part of 'mlxsw_pci' structure. In some cases, the driver uses this value and in some cases it calls mlxsw_pci_sdq_count() to get the value. Align the code to use the stored value. This simplifies the code and makes it clearer that the value is always the same. Rename 'mlxsw_pci->num_sdq_cqs' to 'mlxsw_pci->num_sdqs' as now it is used not only in CQ context. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 1839ab840b35..a7ede97a3bcc 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -123,7 +123,7 @@ struct mlxsw_pci { struct mlxsw_bus_info bus_info; const struct pci_device_id *id; enum mlxsw_pci_cqe_v max_cqe_ver; /* Maximal supported CQE version */ - u8 num_sdq_cqs; /* Number of CQs used for SDQs */ + u8 num_sdqs; /* Number of SDQs */ bool skip_reset; }; @@ -188,11 +188,6 @@ static u8 __mlxsw_pci_queue_count(struct mlxsw_pci *mlxsw_pci, return queue_group->count; } -static u8 mlxsw_pci_sdq_count(struct mlxsw_pci *mlxsw_pci) -{ - return __mlxsw_pci_queue_count(mlxsw_pci, MLXSW_PCI_QUEUE_TYPE_SDQ); -} - static u8 mlxsw_pci_cq_count(struct mlxsw_pci *mlxsw_pci) { return __mlxsw_pci_queue_count(mlxsw_pci, MLXSW_PCI_QUEUE_TYPE_CQ); @@ -391,7 +386,7 @@ static int mlxsw_pci_rdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, struct mlxsw_pci_queue *q) { struct mlxsw_pci_queue_elem_info *elem_info; - u8 sdq_count = mlxsw_pci_sdq_count(mlxsw_pci); + u8 sdq_count = mlxsw_pci->num_sdqs; int i; int err; @@ -457,7 +452,7 @@ static void mlxsw_pci_cq_pre_init(struct mlxsw_pci *mlxsw_pci, q->cq.v = mlxsw_pci->max_cqe_ver; if (q->cq.v == MLXSW_PCI_CQE_V2 && - q->num < mlxsw_pci->num_sdq_cqs && + q->num < mlxsw_pci->num_sdqs && !mlxsw_core_sdq_supports_cqe_v2(mlxsw_pci->core)) q->cq.v = MLXSW_PCI_CQE_V1; } @@ -735,10 +730,10 @@ static enum mlxsw_pci_cq_type mlxsw_pci_cq_type(const struct mlxsw_pci *mlxsw_pci, const struct mlxsw_pci_queue *q) { - /* Each CQ is mapped to one DQ. The first 'num_sdq_cqs' queues are used + /* Each CQ is mapped to one DQ. The first 'num_sdqs' queues are used * for SDQs and the rest are used for RDQs. */ - if (q->num < mlxsw_pci->num_sdq_cqs) + if (q->num < mlxsw_pci->num_sdqs) return MLXSW_PCI_CQ_SDQ; return MLXSW_PCI_CQ_RDQ; @@ -1112,7 +1107,7 @@ static int mlxsw_pci_aqs_init(struct mlxsw_pci *mlxsw_pci, char *mbox) return -EINVAL; } - mlxsw_pci->num_sdq_cqs = num_sdqs; + mlxsw_pci->num_sdqs = num_sdqs; err = mlxsw_pci_queue_group_init(mlxsw_pci, mbox, &mlxsw_pci_eq_ops, MLXSW_PCI_EQS_COUNT); @@ -1778,7 +1773,7 @@ static struct mlxsw_pci_queue * mlxsw_pci_sdq_pick(struct mlxsw_pci *mlxsw_pci, const struct mlxsw_tx_info *tx_info) { - u8 ctl_sdq_count = mlxsw_pci_sdq_count(mlxsw_pci) - 1; + u8 ctl_sdq_count = mlxsw_pci->num_sdqs - 1; u8 sdqn; if (tx_info->is_emad) { From patchwork Tue Apr 2 13:54:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614157 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2074.outbound.protection.outlook.com [40.107.94.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 48DC985278 for ; Tue, 2 Apr 2024 13:58:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.94.74 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066288; cv=fail; b=llE99wBH4xbnlv6VHZUW2yQqSQifPMJfBUAxkhBLKeu7ATmW6ALKxqZrKjxhKpIRJw/oiUsrttycRzf2lZPAwhzuKyArHdPXu3nsNyvqp7KWMhtmW9a1lvLoIogMUG0ip0CFclm061tutfMLuTwTa9Q0tpp4bTnBm23Voz2bY6k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066288; c=relaxed/simple; bh=CPCOZJ7Sort8nl3GajpuBEby2nUDUoDxxdJSMUR/qKc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=owCqocgXA10c7p9jkZEcn+ranm0ZK+t4Fng+3Ot+6suhuECvZ21UEoA4WpCHtL4uMw0dz0cKpA5bk75lAfFrzookRyMUhLZSS9wzI4lBrtsINwnfDGBJ6t0KKcJrF30AeDBAMlSyBWPp8YRyjASJdp4qlJmKpN3ACGE1P6OuiNw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=qJTh3LIl; arc=fail smtp.client-ip=40.107.94.74 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="qJTh3LIl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RrsaiwyikcBIk9HQRlDKO174Y8T2FBrN6zUwWIbYeVdcoJmJt5tSNtsnFs68JK8CxGENsQqcvZblOa1hYnDPrV+Q9RPFZMqQmDpzh+ai0mkWedWomuMpsSQdtXE+61Usc+N0S/xylJeCPxe26UWxMwyjO+SPJjwqh0tMBVLv8igxSTRT99xz4tpaYKGzw3yFtL2aHNdtOFR9+5x2LHFqQsN55NtYBfhzA4IwOoXQD0n45SpM1b0RL7zi5NQbaNvsMfAOl7n8BYZyIKwPDjQS4AtkWOJmr5/QMIlzAe0d+/EdPJuJ5J3hUfxCN0BCpbPOAyH48I4eMp1APlQ2iJEZqA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mDx9vH/mV9nD68/U5JL/rrEoT0WcgjpM5HpnQZImyKE=; b=LOI9RCva2gdf5P/ze7VDhaFQG9cn7IUccW+e1Teg8zPYgi5hOI+sDMfaYSk35qqOXYrQXWZWCtjTbjYxiL5WgODrMmLvMwM6W8nIGjkFRSAgiQIgVfDKwbsdOfeU/F+y2IdnUw6RCmyReH2DNyTjSuggzPnf3O7Y2IXO2PQ4yIHPmTvd1JHES8Mi0k/dreW14DXgZ3Wsbm98w99avWSIqVJwY/iL7laoQHN0KIv7/ZI5ddmdYJihLIyoOiibcCb7h91hY0Vdd19+1oVRccqhcQnY+6z4QjaWwKHzEO8JCM1h6I8JlLH9FgRXGcCY/laf3rITbHIRZ4RpH7ehz51nxw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mDx9vH/mV9nD68/U5JL/rrEoT0WcgjpM5HpnQZImyKE=; b=qJTh3LIlyCoKk+bIrN+UdCBUUVtb49RiYBTBaQlHRSY92jm6JJV0nrjyiKo7eCvdnaUH+1/gsbPu79fCUMWZaWmyY10+hLmxIcTphTslwNVGt9J1+RuqXznuE92BdnIXsILM+sqT01iovRjJfAHWmcXqBVl0PZe1gaNa0koe47PJsmGTyWIryQbgtEMkk6tIS6bVnF/SuDJSE3AGqd/zRyT/LmyQxVf07YvLd4KNSiOD3+4j2HVO9l0jSUI47gXCyYlXEBN8DQeJIciObvqr+GGTcVujYnCGkDenxL6Q58RmsFeyRQUv0OvgRBpNLQaKFCIc4CrodLWSAuJuqlpLew== Received: from BYAPR21CA0008.namprd21.prod.outlook.com (2603:10b6:a03:114::18) by DM6PR12MB4386.namprd12.prod.outlook.com (2603:10b6:5:28f::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:58:04 +0000 Received: from SJ1PEPF00001CE8.namprd03.prod.outlook.com (2603:10b6:a03:114:cafe::3a) by BYAPR21CA0008.outlook.office365.com (2603:10b6:a03:114::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7472.8 via Frontend Transport; Tue, 2 Apr 2024 13:58:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00001CE8.mail.protection.outlook.com (10.167.242.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:58:03 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:52 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:48 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 14/15] mlxsw: pci: Remove mlxsw_pci_cq_count() Date: Tue, 2 Apr 2024 15:54:27 +0200 Message-ID: X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE8:EE_|DM6PR12MB4386:EE_ X-MS-Office365-Filtering-Correlation-Id: 2726775f-97fb-4ce4-586d-08dc531cea64 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iWE0gOVGh/tc0pyJw6QF3KRbncPotc9iEz6Iqk0RE1kVLv4hI01g6zX6IXHqh6h5pT1ta0xWPKXYy2VKP3SahvEhx1kvsvvYqJ3/iTT1JjrxfFnwMHu/phTVOoLvyb7kqB+Lhi55DvPiwD/ncQSaPlYTXj3L0ZykA8d7vyITXXngn7JXiqpTJ6oaEnoC0GdrHZ9t+a8XE5Xm9e4XIGyOP2ZjPMXD/52KR3LPxdkEx605x+WJcoj1z5+xMfg6ddYJsKvyfzsebHdeLwcOMfDUNJmVYyWNG/edk3YJsQZu6FC1P5YF/2nJpq+CQ/jO6m00ng1qSxX45Cw28x3BR0NEicL/WHCJwaewhlNiFZIbfpoYxP3YBfoLmEnVWIOsSudKjcs++DNItY5u8cplmGiNYX+z80vmwUZ4kvBpuETdnMKz9zlnIlZERgc/kVsGqGbGjV4CXsl5xQW1pPC+IHHioR1OH3i1nmFm2KFyog+71XrYWycIbwAxC/tQeaSk0col4hJbDVNlBr9L7l5yVgnznDVcibYqunoywd1ZEeVLWb1PoLISE6PcmOU0i/6h6U7geZlSA8WRQG9WO8E5eWL7UiWyzNVFACs4XOXiFjRT509h9Nkoryx/I1GhUAPZgFXIc7jdvnpOYgqlHz5vXnRC3vxYBvz8OT+hubIoaZ5tdU2DCBA2l+G8/roJsgjzlSbxlG7X728yx4m4KZ5cQXo0zjfH6kjt3kqbVOzjstVIdirFlBljV7rQjLW92C592kNZ X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230031)(376005)(82310400014)(36860700004)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:58:03.6089 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2726775f-97fb-4ce4-586d-08dc531cea64 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CE8.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4386 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Currently, for each interrupt we call mlxsw_pci_cq_count() to determine the number of CQs. This call makes additional two function's calls. This can be removed by storing this value as part of structure 'mlxsw_pci', as we already do for number of SDQs. Remove the function and __mlxsw_pci_queue_count() which is now not used and store the value instead. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index a7ede97a3bcc..2148110542cb 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -123,6 +123,7 @@ struct mlxsw_pci { struct mlxsw_bus_info bus_info; const struct pci_device_id *id; enum mlxsw_pci_cqe_v max_cqe_ver; /* Maximal supported CQE version */ + u8 num_cqs; /* Number of CQs */ u8 num_sdqs; /* Number of SDQs */ bool skip_reset; }; @@ -179,20 +180,6 @@ mlxsw_pci_queue_type_group_get(struct mlxsw_pci *mlxsw_pci, return &mlxsw_pci->queues[q_type]; } -static u8 __mlxsw_pci_queue_count(struct mlxsw_pci *mlxsw_pci, - enum mlxsw_pci_queue_type q_type) -{ - struct mlxsw_pci_queue_type_group *queue_group; - - queue_group = mlxsw_pci_queue_type_group_get(mlxsw_pci, q_type); - return queue_group->count; -} - -static u8 mlxsw_pci_cq_count(struct mlxsw_pci *mlxsw_pci) -{ - return __mlxsw_pci_queue_count(mlxsw_pci, MLXSW_PCI_QUEUE_TYPE_CQ); -} - static struct mlxsw_pci_queue * __mlxsw_pci_queue_get(struct mlxsw_pci *mlxsw_pci, enum mlxsw_pci_queue_type q_type, u8 q_num) @@ -850,7 +837,7 @@ static void mlxsw_pci_eq_tasklet(struct tasklet_struct *t) mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); mlxsw_pci_queue_doorbell_arm_consumer_ring(mlxsw_pci, q); - cq_count = mlxsw_pci_cq_count(mlxsw_pci); + cq_count = mlxsw_pci->num_cqs; for_each_set_bit(cqn, active_cqns, cq_count) { q = mlxsw_pci_cq_get(mlxsw_pci, cqn); mlxsw_pci_queue_tasklet_schedule(q); @@ -1107,6 +1094,7 @@ static int mlxsw_pci_aqs_init(struct mlxsw_pci *mlxsw_pci, char *mbox) return -EINVAL; } + mlxsw_pci->num_cqs = num_cqs; mlxsw_pci->num_sdqs = num_sdqs; err = mlxsw_pci_queue_group_init(mlxsw_pci, mbox, &mlxsw_pci_eq_ops, From patchwork Tue Apr 2 13:54:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Petr Machata X-Patchwork-Id: 13614158 X-Patchwork-Delegate: kuba@kernel.org Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2052.outbound.protection.outlook.com [40.107.92.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B50F683CB3 for ; Tue, 2 Apr 2024 13:58:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.52 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066293; cv=fail; b=TdAR/U+XjuSz+p5GEPWj9B7Ir0lNHgHzF3tMwLUeZFFWlfPLthqOacoJOjKXjAFUK2QSxeaasUI+aoLD5WjQxm8LidXxKT4pVcboHQ6TA7flBKD1sYVUgwCGHihJzI8VlZwNTAFm02Mt6abZ9PHsjvapOYsybjlIVxEgeP+rcOk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712066293; c=relaxed/simple; bh=aE2Zi2nynHVJOTvjWCSCsMqpVPEpcX42AK1mx0eVtoE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fu4YvtrUDtHTxRXyWPzLlY2Hd41kNvxI0dqgYWSvCzk9+kDdX2goxlNF7XUWqeKoBLRvjV2vN1R4BttOCUF12Hjelk99OqkUNpTTKcSsP7kDD3/1Tt6xX+NFMaATz0KYTsHUnDXxSk+FdwosE/QqvHQLhY3jq/768NaGu8Iqr9E= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=GANWJJYj; arc=fail smtp.client-ip=40.107.92.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="GANWJJYj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KAegM9cjeNSma4+5LDoOTTGOnhwM//VhAyDbyOC8l3bwFnTbXPA99IRpe0GkxYLXHyTeM/ExvbdVAGgUHChSGd2/j1X5ucPdlROZuQXuHIzS0sCYfhgDIkS69ZVls4Qj/caqkxoLp9O6a5mfz5gCwcl+/E7oFWYbHeEb4I9RSx6uK4sSHKMJTQmAF57lAvrsclS5XpNYpnZWl9YeBqBVkonPjHirQkibSlf6uTTEbedooiGCfurWU3NJt/jt8xt+7rwlQ6PAadyndOo4R9hAh9iNb6wyYClnqfH70VrKo3XuGHDxhYbyCPbsIHsdR9xSjmOps5YsDCguBr7AMwzYXQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TX5DNML9M90EuMnQUzfoHnRNp6/E/MRMbBajyscajnQ=; b=V6bQraaWULMHt4wP3t4Hi9f+KI4Puj+NC9yQsxXzVCLeG3fmKmWN3Z1cLBSc+XhBX9DexXZx3Nkx1FhibuCoaOWjBXUoUCLUkujNJcC+hG50A6TGfwO2wd9PJmNz/xDObsS8RlYwq8U9E9TB6JVs2Y65Anbp0fd59TAtFxvApAzQH0EjJeSk4D261P/956/tANEAwtIIyiZw5pdtlaP9ZeHZbAepN1X6dv7mXlRiaGysprKnGXtbtHy9TGtncIOud3gDnB0IvjT4yPkB6AgtnJUmC2kyFwJCj6x9E97pbdDJ2thwoSYbIFLA2u7eHLDxC8Yej3wUAj89K8+bZvNaJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=davemloft.net smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TX5DNML9M90EuMnQUzfoHnRNp6/E/MRMbBajyscajnQ=; b=GANWJJYjRDpYKuRXh0V/wqvg010PseuuSA1SYYKwNTSEprTP6BuHh1QcR8B5QH9ZOzTxqxgJsBcAUn5kkD5Nt5qk8pm4oLmzUGgdn1i9cyZMQtxRqo3P7WkUeU0c19JsWboQm/EjuWC4MOt8cIlsNLRNbENuw0aw+vfMqtYyK/BpE+G0HNs6Hqd7rndwJ2kKraxhezFbZZgyWhAWnvyceW9SZUIKeNo1U1eSAEB5FPDA9MUP8sLcsOSRWEdYgraG3x7p1jFaxyt3RTuWdX675IF+Yw73YraLyti/3aBq8Od9JKmNVW+D3NqLbj+5fCU8DETnQzaBwOkWoQpd7+Gajw== Received: from BYAPR08CA0047.namprd08.prod.outlook.com (2603:10b6:a03:117::24) by CH2PR12MB4103.namprd12.prod.outlook.com (2603:10b6:610:7e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46; Tue, 2 Apr 2024 13:58:07 +0000 Received: from SJ1PEPF00001CE5.namprd03.prod.outlook.com (2603:10b6:a03:117:cafe::50) by BYAPR08CA0047.outlook.office365.com (2603:10b6:a03:117::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.46 via Frontend Transport; Tue, 2 Apr 2024 13:58:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by SJ1PEPF00001CE5.mail.protection.outlook.com (10.167.242.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.22 via Frontend Transport; Tue, 2 Apr 2024 13:58:06 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Apr 2024 06:57:56 -0700 Received: from localhost.localdomain (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Tue, 2 Apr 2024 06:57:52 -0700 From: Petr Machata To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , CC: Ido Schimmel , Amit Cohen , "Petr Machata" , Subject: [PATCH net-next 15/15] mlxsw: pci: Store DQ pointer as part of CQ structure Date: Tue, 2 Apr 2024 15:54:28 +0200 Message-ID: X-Mailer: git-send-email 2.44.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE5:EE_|CH2PR12MB4103:EE_ X-MS-Office365-Filtering-Correlation-Id: 64dcc270-4641-4b18-d3fd-08dc531cec2c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 60NB/xsHilWbDRb/lOZ2LHpEBrqsqleQPL/cyz3UpBmfg56sereKP6BdsftfW1Gx+4zvMK8nCWxzi47QGbTOmYAgVN3DArJcTJfN5S25iCckF1hyHakl9qae2YOPOfrnTHoCTZAlHLUkuU3MgGaDRUlQyNVjQJJF5T5TxR6PUlrzw4vIO9Pn/1Wx5oRZMtPqdDmr5bbyINve4KH72qNmlcFN54gsHxc7lIj6C70ajsVsFoZQPtQoVpkGFGBVlfpZIxwy6U/3GvvU4JCyahtmsncZ8/wtkIIfiFBijNlFvNHIOisesj0mwDBehiC70MwsDir/ajT2O3AN1CvY4K1aI6+xzxn96+sQp2S1I4ojH9exr+4GBO2VY6aKh17rw4PEZqCdG0BudWCPJ0TJyKtBDBleKYoD77TipUb0hYBqYPaJKMIcnVfJIUhjvmre9bQ/Go/RUwrBeVZniDX8RoBVKYnFnQMbC5oTsGXPeDB7SX2VUmQoPtUn3/8HiCibnV14l+AlVr54RCJcEM7fREV26rvMFC/Y4o7aRyc65XRN+BC6RxbV9j6ps49HLMUrMRTJ/QINItze/U1uXyQso2lhvw11RHNO0GcFiPm+Uz2jN3wYrk7euIzKm7BsmZ7ug4Dg+VvoirjLN1DR9ji+AsKPMiflLi/in9cvAyTdQP5tE16i2TRpmW9QEipgVmD+HlruabbeVinL4WQPYaG72GwZdCwX4+CJt0Mb1K2lfeO4x+XeE5yxUSeoLH+u8jmC3CKS X-Forefront-Antispam-Report: CIP:216.228.117.160;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge1.nvidia.com;CAT:NONE;SFS:(13230031)(36860700004)(376005)(82310400014)(1800799015);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Apr 2024 13:58:06.6162 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 64dcc270-4641-4b18-d3fd-08dc531cec2c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.117.160];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CE5.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB4103 X-Patchwork-Delegate: kuba@kernel.org From: Amit Cohen Currently, for each completion, we check the number of descriptor queue and take it via mlxsw_pci_{sdq,rdq}_get(). This is inefficient, the DQ should be the same for all the completions in CQ, as each CQ handles only one DQ - SDQ or RDQ. This mapping is handled as part of DQ initialization via mlxsw_cmd_mbox_sw2hw_dq_cq_set(). Instead, as part of DQ initialization, set DQ pointer in the appropriate CQ structure. When we handle completions, warn in case that the DQ number that we expect is different from the number we get in the CQE. Call WARN_ON_ONCE() only after checking the value, to avoid calling this method for each completion. Signed-off-by: Amit Cohen Reviewed-by: Ido Schimmel Signed-off-by: Petr Machata Reviewed-by: Simon Horman --- drivers/net/ethernet/mellanox/mlxsw/pci.c | 41 ++++++++++++++++------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxsw/pci.c b/drivers/net/ethernet/mellanox/mlxsw/pci.c index 2148110542cb..13fd067c39ed 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/pci.c +++ b/drivers/net/ethernet/mellanox/mlxsw/pci.c @@ -86,6 +86,7 @@ struct mlxsw_pci_queue { struct mlxsw_pci *pci; struct { enum mlxsw_pci_cqe_v v; + struct mlxsw_pci_queue *dq; } cq; }; @@ -194,13 +195,6 @@ static struct mlxsw_pci_queue *mlxsw_pci_sdq_get(struct mlxsw_pci *mlxsw_pci, MLXSW_PCI_QUEUE_TYPE_SDQ, q_num); } -static struct mlxsw_pci_queue *mlxsw_pci_rdq_get(struct mlxsw_pci *mlxsw_pci, - u8 q_num) -{ - return __mlxsw_pci_queue_get(mlxsw_pci, - MLXSW_PCI_QUEUE_TYPE_RDQ, q_num); -} - static struct mlxsw_pci_queue *mlxsw_pci_cq_get(struct mlxsw_pci *mlxsw_pci, u8 q_num) { @@ -265,7 +259,9 @@ static dma_addr_t __mlxsw_pci_queue_page_get(struct mlxsw_pci_queue *q, static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, struct mlxsw_pci_queue *q) { + struct mlxsw_pci_queue *cq; int tclass; + u8 cq_num; int lp; int i; int err; @@ -278,7 +274,8 @@ static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, MLXSW_CMD_MBOX_SW2HW_DQ_SDQ_LP_WQE; /* Set CQ of same number of this SDQ. */ - mlxsw_cmd_mbox_sw2hw_dq_cq_set(mbox, q->num); + cq_num = q->num; + mlxsw_cmd_mbox_sw2hw_dq_cq_set(mbox, cq_num); mlxsw_cmd_mbox_sw2hw_dq_sdq_lp_set(mbox, lp); mlxsw_cmd_mbox_sw2hw_dq_sdq_tclass_set(mbox, tclass); mlxsw_cmd_mbox_sw2hw_dq_log2_dq_sz_set(mbox, 3); /* 8 pages */ @@ -291,6 +288,9 @@ static int mlxsw_pci_sdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, err = mlxsw_cmd_sw2hw_sdq(mlxsw_pci->core, mbox, q->num); if (err) return err; + + cq = mlxsw_pci_cq_get(mlxsw_pci, cq_num); + cq->cq.dq = q; mlxsw_pci_queue_doorbell_producer_ring(mlxsw_pci, q); return 0; } @@ -374,6 +374,8 @@ static int mlxsw_pci_rdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, { struct mlxsw_pci_queue_elem_info *elem_info; u8 sdq_count = mlxsw_pci->num_sdqs; + struct mlxsw_pci_queue *cq; + u8 cq_num; int i; int err; @@ -383,7 +385,8 @@ static int mlxsw_pci_rdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, /* Set CQ of same number of this RDQ with base * above SDQ count as the lower ones are assigned to SDQs. */ - mlxsw_cmd_mbox_sw2hw_dq_cq_set(mbox, sdq_count + q->num); + cq_num = sdq_count + q->num; + mlxsw_cmd_mbox_sw2hw_dq_cq_set(mbox, cq_num); mlxsw_cmd_mbox_sw2hw_dq_log2_dq_sz_set(mbox, 3); /* 8 pages */ for (i = 0; i < MLXSW_PCI_AQ_PAGES; i++) { dma_addr_t mapaddr = __mlxsw_pci_queue_page_get(q, i); @@ -395,6 +398,9 @@ static int mlxsw_pci_rdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, if (err) return err; + cq = mlxsw_pci_cq_get(mlxsw_pci, cq_num); + cq->cq.dq = q; + mlxsw_pci_queue_doorbell_producer_ring(mlxsw_pci, q); for (i = 0; i < q->count; i++) { @@ -415,6 +421,7 @@ static int mlxsw_pci_rdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox, elem_info = mlxsw_pci_queue_elem_info_get(q, i); mlxsw_pci_rdq_skb_free(mlxsw_pci, elem_info); } + cq->cq.dq = NULL; mlxsw_cmd_hw2sw_rdq(mlxsw_pci->core, q->num); return err; @@ -648,6 +655,7 @@ static char *mlxsw_pci_cq_sw_cqe_get(struct mlxsw_pci_queue *q) static void mlxsw_pci_cq_rx_tasklet(struct tasklet_struct *t) { struct mlxsw_pci_queue *q = from_tasklet(q, t, tasklet); + struct mlxsw_pci_queue *rdq = q->cq.dq; struct mlxsw_pci *mlxsw_pci = q->pci; int credits = q->count >> 1; int items = 0; @@ -658,17 +666,20 @@ static void mlxsw_pci_cq_rx_tasklet(struct tasklet_struct *t) u8 sendq = mlxsw_pci_cqe_sr_get(q->cq.v, cqe); u8 dqn = mlxsw_pci_cqe_dqn_get(q->cq.v, cqe); char ncqe[MLXSW_PCI_CQE_SIZE_MAX]; - struct mlxsw_pci_queue *rdq; if (unlikely(sendq)) { WARN_ON_ONCE(1); continue; } + if (unlikely(dqn != rdq->num)) { + WARN_ON_ONCE(1); + continue; + } + memcpy(ncqe, cqe, q->elem_size); mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); - rdq = mlxsw_pci_rdq_get(mlxsw_pci, dqn); mlxsw_pci_cqe_rdq_handle(mlxsw_pci, rdq, wqe_counter, q->cq.v, ncqe); @@ -682,6 +693,7 @@ static void mlxsw_pci_cq_rx_tasklet(struct tasklet_struct *t) static void mlxsw_pci_cq_tx_tasklet(struct tasklet_struct *t) { struct mlxsw_pci_queue *q = from_tasklet(q, t, tasklet); + struct mlxsw_pci_queue *sdq = q->cq.dq; struct mlxsw_pci *mlxsw_pci = q->pci; int credits = q->count >> 1; int items = 0; @@ -692,17 +704,20 @@ static void mlxsw_pci_cq_tx_tasklet(struct tasklet_struct *t) u8 sendq = mlxsw_pci_cqe_sr_get(q->cq.v, cqe); u8 dqn = mlxsw_pci_cqe_dqn_get(q->cq.v, cqe); char ncqe[MLXSW_PCI_CQE_SIZE_MAX]; - struct mlxsw_pci_queue *sdq; if (unlikely(!sendq)) { WARN_ON_ONCE(1); continue; } + if (unlikely(dqn != sdq->num)) { + WARN_ON_ONCE(1); + continue; + } + memcpy(ncqe, cqe, q->elem_size); mlxsw_pci_queue_doorbell_consumer_ring(mlxsw_pci, q); - sdq = mlxsw_pci_sdq_get(mlxsw_pci, dqn); mlxsw_pci_cqe_sdq_handle(mlxsw_pci, sdq, wqe_counter, q->cq.v, ncqe);