Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp204159rwd; Wed, 7 Jun 2023 22:31:32 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7eyVO6+hBAp5KQApam+JsrOFJoRhLjXgoJmW4vHOcuC682xXImX1P2cZyAgFVVrT+uiUR4 X-Received: by 2002:a05:6a21:2c87:b0:114:7236:9777 with SMTP id ua7-20020a056a212c8700b0011472369777mr2241087pzb.21.1686202292140; Wed, 07 Jun 2023 22:31:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686202292; cv=none; d=google.com; s=arc-20160816; b=Gpb/9rNhEfbRMd6ImK3oVlPVb1DkWuf/O/sTimshJ1olIl8BrpTei1/2mbjwIm99n5 X6MBbaNTbhAfbH75+DCZPeQuleGVpRJrZggAbz9ekV0VO80RMMHpgDnQpGUO55iYomse JeabIfErAd/sV73+IiL47O8gTD438fxK6xOCPG23jaji4wl27zEsUsWYft4RBDKCb+xw jUqUuvKRig9T/m8cu3yd4KK3Hyy3Y2tuZxR+YTHCvpPJBHjmDjSUHYi07WNnJHbqgU9T UH+wWw6emmYM0R7qaDM+8eipz8+VFQiyY/pmW7YukMmOSd9fyUVRwMEImxWUU5aoa85H jozg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=m6eXUjhW/7LpIx2wbG81CQCd5iUqZ1757BwskOGc+V0=; b=CyihZXLmQaocNe9F9tsRDWWtPzKpzgUA5vE9JLAmWNg4UGfpRiawbyBtX0uA/sARBh CFEq8CcTIZRLLcJmcnVCuxT32mq6C3uosLn7TO2yDOLWfh7z04NjxMA3kJJSQJl3BAVH v6Micr12AJ6zG79vuUjaErUj4g/R49YF4YgRaXJW70TwU0S7TC/RPmbbV1zfvcilkPXQ RQ5WWAjI3bi7Fdr7YKzfxFpOer4BhJgupihK9mBaHklaYbK3sh9c0vkD39zbF2grs3bJ D23KmQhB741rlPWijFpUG+QvrQ0GgXprzNJFSSHqgIYH3W2I44Ys61tzWaiJKdMOU7k5 qvqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=CqfEKN4S; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b7-20020a170902d50700b001adc3a1b3fasi523662plg.282.2023.06.07.22.31.16; Wed, 07 Jun 2023 22:31:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=CqfEKN4S; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=REJECT dis=NONE) header.from=marvell.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234294AbjFHFQr (ORCPT + 99 others); Thu, 8 Jun 2023 01:16:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34594 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233573AbjFHFQp (ORCPT ); Thu, 8 Jun 2023 01:16:45 -0400 Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23B7426B6; Wed, 7 Jun 2023 22:16:45 -0700 (PDT) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 357LwKrE023704; Wed, 7 Jun 2023 22:16:33 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=m6eXUjhW/7LpIx2wbG81CQCd5iUqZ1757BwskOGc+V0=; b=CqfEKN4SfkTA40lfojxLRMkCfZxYk1zKzdyWSLiPELPLjsKH8t0WvX8n/PeLXkjYmG3o RZZRFrqsRfBD8USNGR3Y407rZ/1ctJAB49i3RI0qxl+LF6t4YudZe9ZtbSNLSNOdRI0h n04o4Y52F15E+cR3812Zf/jIyaGEWAJmQrEzK7QF8Ne9zncspCP7s0oRJgM39Is/Jnu/ aOarOlG4HGQoV9XhKigYoJwPSGAIViFbj7FFAk/9KjTGQ/9vrmDs+8HM3hsF3oIPtwFv sSlDKtdlxlsB9T7OuROTBipRq9i/oMfDSGELx4f5rM3hvFdXXdvoHBHp9NBPWnVHMzcE vA== Received: from dc5-exch01.marvell.com ([199.233.59.181]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3r329c1913-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 07 Jun 2023 22:16:32 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Wed, 7 Jun 2023 22:16:30 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Wed, 7 Jun 2023 22:16:30 -0700 Received: from localhost.localdomain (unknown [10.28.36.165]) by maili.marvell.com (Postfix) with ESMTP id 64D413F703F; Wed, 7 Jun 2023 22:16:27 -0700 (PDT) From: Ratheesh Kannoth To: , CC: , , , , , , , , , "Ratheesh Kannoth" Subject: [PATCH net] octeontx2-af: Fix promiscuous mode Date: Thu, 8 Jun 2023 10:46:25 +0530 Message-ID: <20230608051625.2731378-1-rkannoth@marvell.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-GUID: 4ZBe907Ts0Vq0a3MbPSrm6swUbAjXPz1 X-Proofpoint-ORIG-GUID: 4ZBe907Ts0Vq0a3MbPSrm6swUbAjXPz1 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-08_02,2023-06-07_01,2023-05-22_02 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org CN10KB silicon introduced a new exact match feature, which is used for DMAC filtering. The state of installed DMAC filters in this exact match table is getting corrupted when promiscuous mode is toggled. Fix this by not touching Exact match related config when promiscuous mode is toggled. Fixes: 2dba9459d2c9 ("octeontx2-af: Wrapper functions for MAC addr add/del/update/reset") Signed-off-by: Ratheesh Kannoth --- .../marvell/octeontx2/af/rvu_npc_hash.c | 29 ++----------------- 1 file changed, 2 insertions(+), 27 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c index 51209119f0f2..9f11c1e40737 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c @@ -1164,10 +1164,8 @@ static u16 __rvu_npc_exact_cmd_rules_cnt_update(struct rvu *rvu, int drop_mcam_i { struct npc_exact_table *table; u16 *cnt, old_cnt; - bool promisc; table = rvu->hw->table; - promisc = table->promisc_mode[drop_mcam_idx]; cnt = &table->cnt_cmd_rules[drop_mcam_idx]; old_cnt = *cnt; @@ -1179,16 +1177,13 @@ static u16 __rvu_npc_exact_cmd_rules_cnt_update(struct rvu *rvu, int drop_mcam_i *enable_or_disable_cam = false; - if (promisc) - goto done; - - /* If all rules are deleted and not already in promisc mode; disable cam */ + /* If all rules are deleted, disable cam */ if (!*cnt && val < 0) { *enable_or_disable_cam = true; goto done; } - /* If rule got added and not already in promisc mode; enable cam */ + /* If rule got added, enable cam */ if (!old_cnt && val > 0) { *enable_or_disable_cam = true; goto done; @@ -1443,7 +1438,6 @@ int rvu_npc_exact_promisc_disable(struct rvu *rvu, u16 pcifunc) u32 drop_mcam_idx; bool *promisc; bool rc; - u32 cnt; table = rvu->hw->table; @@ -1466,17 +1460,8 @@ int rvu_npc_exact_promisc_disable(struct rvu *rvu, u16 pcifunc) return LMAC_AF_ERR_INVALID_PARAM; } *promisc = false; - cnt = __rvu_npc_exact_cmd_rules_cnt_update(rvu, drop_mcam_idx, 0, NULL); mutex_unlock(&table->lock); - /* If no dmac filter entries configured, disable drop rule */ - if (!cnt) - rvu_npc_enable_mcam_by_entry_index(rvu, drop_mcam_idx, NIX_INTF_RX, false); - else - rvu_npc_enable_mcam_by_entry_index(rvu, drop_mcam_idx, NIX_INTF_RX, !*promisc); - - dev_dbg(rvu->dev, "%s: disabled promisc mode (cgx=%d lmac=%d, cnt=%d)\n", - __func__, cgx_id, lmac_id, cnt); return 0; } @@ -1494,7 +1479,6 @@ int rvu_npc_exact_promisc_enable(struct rvu *rvu, u16 pcifunc) u32 drop_mcam_idx; bool *promisc; bool rc; - u32 cnt; table = rvu->hw->table; @@ -1517,17 +1501,8 @@ int rvu_npc_exact_promisc_enable(struct rvu *rvu, u16 pcifunc) return LMAC_AF_ERR_INVALID_PARAM; } *promisc = true; - cnt = __rvu_npc_exact_cmd_rules_cnt_update(rvu, drop_mcam_idx, 0, NULL); mutex_unlock(&table->lock); - /* If no dmac filter entries configured, disable drop rule */ - if (!cnt) - rvu_npc_enable_mcam_by_entry_index(rvu, drop_mcam_idx, NIX_INTF_RX, false); - else - rvu_npc_enable_mcam_by_entry_index(rvu, drop_mcam_idx, NIX_INTF_RX, !*promisc); - - dev_dbg(rvu->dev, "%s: Enabled promisc mode (cgx=%d lmac=%d cnt=%d)\n", - __func__, cgx_id, lmac_id, cnt); return 0; } -- 2.25.1