From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) (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 7C5B33E1CE3; Thu, 23 Apr 2026 10:44:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.148.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776941050; cv=none; b=MoBRoO8YwJl8zMcQlrEHCWZ+Jm8+9kbGoUVjvKn4lCSYp3CxCnUCVyITdt7uaLkPMs/w6GUUpyumZWnOAokNwXJVrKxyQu+2s1Bv+4RzYgB0Agr+J3gsDWbwNL2Kvu3xGOgwfcKq+6SHVYp/gCW433eh+35HxogIQS0s1aYCneI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776941050; c=relaxed/simple; bh=fSDqN41LkNRTJQuvKTn0FmMhOD209dGKQ88CRVVX6NQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dbxdZSyobAmsMwE2vRWsjQQRGXPNgMvsxWwoxtvG7n1Wm0/11fh7FWZ9kSCRHYy6FkukRpTq6B6oGFnyELvrkHzuiFOrbkF7wXL/X5HrX5xQ6w/HoXGU2pvj9obLwA8xghYf8vMiAZaoSk70GC2K2/j7m1HmDf/hkejPfIwNC+0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=marvell.com; spf=pass smtp.mailfrom=marvell.com; dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b=NBdx+6T3; arc=none smtp.client-ip=67.231.148.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=marvell.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=marvell.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=marvell.com header.i=@marvell.com header.b="NBdx+6T3" Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63N6GaNU692965; Thu, 23 Apr 2026 03:44:01 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pfpt0220; bh=j TQ+xWqXf+5X59qjVL4t2OXqgirBN2R4NHf+Rpw4jfM=; b=NBdx+6T3oVufajkhW NsOFICjCWTy3d0Iv4ObDKHiwv748+qoskBiq0wH1/4kobvUj94h6iNRUZYwc1y6s m+ZMYhpga7GBEeBGHsIFIhM2MngJwoPZEiOwZq9omWWGzED31RE/7PW4gLq+hbgL otb+Y0uzKLWg3/IIfPI7jetiBTbmeF6atbFPYfladZzICYtL0cL+nCvsKRQGbVZi 1Wu17YqYwFEsiKTIA/HARpTWdoiUKRkCrSZA2UpW/hHg1feblRlbcXF9OG2bywYz 3VuQun2kFCBfYvzdfNWGZE9K7vB7Lmhkma7fMayUYNa8qf06l8tsmYaEQv3FVzLr luNZA== Received: from dc5-exch05.marvell.com ([199.233.59.128]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 4dq1n6jfh9-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Apr 2026 03:44:00 -0700 (PDT) Received: from DC5-EXCH05.marvell.com (10.69.176.209) by DC5-EXCH05.marvell.com (10.69.176.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.25; Thu, 23 Apr 2026 03:43:54 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH05.marvell.com (10.69.176.209) with Microsoft SMTP Server id 15.2.1544.25 via Frontend Transport; Thu, 23 Apr 2026 03:43:54 -0700 Received: from rkannoth-OptiPlex-7090.. (unknown [10.28.36.165]) by maili.marvell.com (Postfix) with ESMTP id B5C283F7044; Thu, 23 Apr 2026 03:43:50 -0700 (PDT) From: Ratheesh Kannoth To: , CC: , , , , , , "Ratheesh Kannoth" , Suman Ghosh Subject: [PATCH v3 net 08/11] octeontx2-af: npc: cn20k: Fix MCAM actions read Date: Thu, 23 Apr 2026 16:13:14 +0530 Message-ID: <20260423104317.2707923-9-rkannoth@marvell.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260423104317.2707923-1-rkannoth@marvell.com> References: <20260423104317.2707923-1-rkannoth@marvell.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-ORIG-GUID: QHFykbhdX6pjM-jwuNc2PJAjxCQ1fOW- X-Proofpoint-GUID: QHFykbhdX6pjM-jwuNc2PJAjxCQ1fOW- X-Authority-Analysis: v=2.4 cv=ecoNubEH c=1 sm=1 tr=0 ts=69e9f7f0 cx=c_pps a=rEv8fa4AjpPjGxpoe8rlIQ==:117 a=rEv8fa4AjpPjGxpoe8rlIQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=l0iWHRpgs5sLHlkKQ1IR:22 a=EAYMVhzMl8SCOHhVQcBL:22 a=M5GUcnROAAAA:8 a=IbDIvz35LZQodz_KiiMA:9 a=OBjm3rFKGHvpk9ecZwUJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIzMDEwNSBTYWx0ZWRfXz17JB4h+jitY ydIemkxeu/0bRNMbWy25w53sk08q70u+D74N6u0QVteV1hVFc60xULq9sqfljwabHYv8BhZZLCP YJT+galxR7O3BzmheWlt8I3Nsuzv4iC92dNVfpudZsERnvXI99+N1UahQAo3gHM3yAzyJyUV6br 7HoJtAt5BGTqqj9LrrRr3r/E8YAf9XDRsBZf0z1cj0+7/lagqWudbpwXsztyg81KTjYGnnilN8p hD7PC9HfqkAJiA9+4NL4IX9uayxtvfTfAgoz/kb42htWrJrbCSErVlzpGgiYyhtDLGsA3TckhNd 3MTOmFv6yeH+MS4vMZiawt8nkg+4YY5VNkuTLBQpiPfyJPgjnBFAv36xNv/kOtNz6lYqUGNUK/y Szv4XsI1GilXjQ1Fl3pADWGveHTefKxtlAoPZ2BrBBcZKqwuDRk3Vh5diAWhNAz3xm3F89k9VQo tzJtYA9aNCowf3ldGPQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-23_02,2026-04-21_02,2025-10-01_01 npc_cn20k_read_mcam_entry() always reloaded action and vtag_action from bank 0 after programming the CAM words. Use the bank returned by npc_get_bank() for the ACTION reads as well, and read those registers once up front so both X2 and X4 paths share the same metadata. Return directly from the X2 keyword path now that the action fields are already populated. Cc: Suman Ghosh Fixes: 6d1e70282f76 ("octeontx2-af: npc: cn20k: Use common APIs") Signed-off-by: Ratheesh Kannoth --- .../ethernet/marvell/octeontx2/af/cn20k/npc.c | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c b/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c index 66d0d56f3045..0bcfd1243f12 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c @@ -1219,6 +1219,18 @@ int npc_cn20k_read_mcam_entry(struct rvu *rvu, int blkaddr, u16 index, bank = npc_get_bank(mcam, index); index &= (mcam->banksize - 1); + cfg = rvu_read64(rvu, blkaddr, + NPC_AF_CN20K_MCAMEX_BANKX_ACTIONX_EXT(index, bank, 0)); + entry->action = cfg; + + cfg = rvu_read64(rvu, blkaddr, + NPC_AF_CN20K_MCAMEX_BANKX_ACTIONX_EXT(index, bank, 1)); + entry->vtag_action = cfg; + + cfg = rvu_read64(rvu, blkaddr, + NPC_AF_CN20K_MCAMEX_BANKX_ACTIONX_EXT(index, bank, 2)); + entry->action2 = cfg; + cfg = rvu_read64(rvu, blkaddr, NPC_AF_CN20K_MCAMEX_BANKX_CAMX_INTF_EXT(index, bank, 1)) & 3; @@ -1268,7 +1280,7 @@ int npc_cn20k_read_mcam_entry(struct rvu *rvu, int blkaddr, u16 index, bank, 0)); npc_cn20k_fill_entryword(entry, kw + 3, cam0, cam1); - goto read_action; + return 0; } for (bank = 0; bank < mcam->banks_per_entry; bank++, kw = kw + 4) { @@ -1313,18 +1325,6 @@ int npc_cn20k_read_mcam_entry(struct rvu *rvu, int blkaddr, u16 index, npc_cn20k_fill_entryword(entry, kw + 3, cam0, cam1); } -read_action: - /* 'action' is set to same value for both bank '0' and '1'. - * Hence, reading bank '0' should be enough. - */ - cfg = rvu_read64(rvu, blkaddr, - NPC_AF_CN20K_MCAMEX_BANKX_ACTIONX_EXT(index, 0, 0)); - entry->action = cfg; - - cfg = rvu_read64(rvu, blkaddr, - NPC_AF_CN20K_MCAMEX_BANKX_ACTIONX_EXT(index, 0, 1)); - entry->vtag_action = cfg; - return 0; } -- 2.43.0