Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp28480743rwd; Tue, 4 Jul 2023 20:52:37 -0700 (PDT) X-Google-Smtp-Source: APBJJlEXaSzUKsjMLoYTYfkTsQnNEnllVsU2wra2daN+mO+U0VgpiIIW1RdhJNmApy8d9soe51/9 X-Received: by 2002:a0d:f202:0:b0:56d:b0a:f012 with SMTP id b2-20020a0df202000000b0056d0b0af012mr15373514ywf.9.1688529157484; Tue, 04 Jul 2023 20:52:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1688529157; cv=none; d=google.com; s=arc-20160816; b=Ahl3t/yS6uqufjsQuz2R4n76k0L6n+NXrIpWBOFYPzEs04BY4aLiyeXe6ntyZUilaa 19+9Nevk5lmWdAH7pSN00LxeDi1SY0bzAqyi0X3WVl1VWxwEExQyCfo+a2UcGTP1eP1c bxgU0S2lk3C4HkxKKzpuOM1+buNA/kPcNtRVtbfptIvaFgyx9SQnwUnG/GD26rYMzyji viG+sjaCV8xWPs9nad+Emn9xdK0NSmtvp8NLJ8dT+Jq9Mon60q8WDUhWZgQmtt7KxuWu 7KbtXFwj2omZXmLkgkZqKdLXURRlDV5A26w3s2iavqT5bydRms2uXL+Yg+u+eNMwGlgx AvAw== 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=wB0DSkHbuSEPjLODB+OEbokuQbKF1FQqCpHYFSRULkQ=; fh=IsC10qRss7GoBdyIwVy2ZvIdAZbHvOKkF5Kpw+rdQTA=; b=ZteyW7sVlYdVjavM9uIhBQ2JpOJtPTvr5Olv2RTNbQ8CmUfWLa6OX+EeF4t4mkgDR5 oeiHBieBfBVu2oANSeWbis/vI4t8IwqnwFYKbrCuyeteslozkaiDKF0QGvA2NcQz4AcQ s95erk+uuXUsV7Ae2akqvck8Pw88Cou3iDCHX+zIaKwnMnelfunaS32+Rso9cKKH26lT 7IGSMvPkE6IMwMRBV/dvRZfgntfC2E0Z4siotR6plvb2OeryDCkck1lpR50CQPbRYhZv tTbqCCn6lB0yF8G584SF4cjPCr4h5lvmx9vAzj53YWfn+GohsebaPkrRWZ1XyDMcp9Ne vQ1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@marvell.com header.s=pfpt0220 header.b=gTTOJ2uo; 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 u185-20020a6385c2000000b0054fe2dfaabcsi22389185pgd.526.2023.07.04.20.52.22; Tue, 04 Jul 2023 20:52:37 -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=gTTOJ2uo; 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 S231154AbjGEDil (ORCPT + 99 others); Tue, 4 Jul 2023 23:38:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38066 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229449AbjGEDii (ORCPT ); Tue, 4 Jul 2023 23:38:38 -0400 Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 00C8E1A2; Tue, 4 Jul 2023 20:38:37 -0700 (PDT) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 364Lu0cD004348; Tue, 4 Jul 2023 20:38:25 -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=wB0DSkHbuSEPjLODB+OEbokuQbKF1FQqCpHYFSRULkQ=; b=gTTOJ2uosPRNJ2+X1BKLQWUREXXelWReX8YZAHESHeJ2wlsVqAzea7cmA9PO9tOH0/nV 8fgx2soEUIdVETzJeacU6EDdCpXkIB4njIwPJsc2OjSoA+5zhY7357pKz/voywKPlPC7 kcwXATzS19/gv5amNfBylOjVFL0+yyVeuVO2kJ1xDa2cHOzSWpCyNbOkFr/p5b0DNOxb 7crDqNfQeTPwXnM2EbtnrMSyvMcUWnKgoKek1LQvF/wXJukBch2NU8LSTtgQfGuwfntF yuwVbWv/rTYFvBO6a7sX6LMSCgtd8gJAMpfTVYkBd39ZaREokjr6KxiBNzbdvSaAsLa6 Tg== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3rjknj98h7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 04 Jul 2023 20:38:24 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Tue, 4 Jul 2023 20:38:22 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Tue, 4 Jul 2023 20:38:22 -0700 Received: from marvell-OptiPlex-7090.marvell.com (unknown [10.28.36.165]) by maili.marvell.com (Postfix) with ESMTP id 3D9A93F7057; Tue, 4 Jul 2023 20:38:19 -0700 (PDT) From: Ratheesh Kannoth To: , CC: , , , , , , , , , "Ratheesh Kannoth" Subject: [PATCH net] octeontx2-af: Promisc enable/disable through mbox Date: Wed, 5 Jul 2023 09:08:13 +0530 Message-ID: <20230705033813.2744357-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: nf0j3nLTex24kgZEEv-YCnqWm3cbiScO X-Proofpoint-ORIG-GUID: nf0j3nLTex24kgZEEv-YCnqWm3cbiScO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-04_16,2023-07-04_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,URIBL_BLOCKED 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 In Legacy silicon, promisc mode is only modified through CGX mbox messages. In CN10KB silicon, it modified from CGX mbox and NIX. This breaks legacy application behaviour. Fix this by removing call from NIX. Fixes: d6c9784baf59 ("octeontx2-af: Invoke exact match functions if supported") Signed-off-by: Ratheesh Kannoth --- .../ethernet/marvell/octeontx2/af/rvu_nix.c | 11 ++--------- .../marvell/octeontx2/af/rvu_npc_hash.c | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c index 0d745ae1cc9a..04b0e885f9d2 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c @@ -4069,21 +4069,14 @@ int rvu_mbox_handler_nix_set_rx_mode(struct rvu *rvu, struct nix_rx_mode *req, } /* install/uninstall promisc entry */ - if (promisc) { + if (promisc) rvu_npc_install_promisc_entry(rvu, pcifunc, nixlf, pfvf->rx_chan_base, pfvf->rx_chan_cnt); - - if (rvu_npc_exact_has_match_table(rvu)) - rvu_npc_exact_promisc_enable(rvu, pcifunc); - } else { + else if (!nix_rx_multicast) rvu_npc_enable_promisc_entry(rvu, pcifunc, nixlf, false); - if (rvu_npc_exact_has_match_table(rvu)) - rvu_npc_exact_promisc_disable(rvu, pcifunc); - } - return 0; } 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 9f11c1e40737..7ee7bc256bde 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c @@ -1164,8 +1164,10 @@ 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; @@ -1177,13 +1179,16 @@ static u16 __rvu_npc_exact_cmd_rules_cnt_update(struct rvu *rvu, int drop_mcam_i *enable_or_disable_cam = false; - /* If all rules are deleted, disable cam */ + if (promisc) + goto done; + + /* If all rules are deleted and not already in promisc mode; disable cam */ if (!*cnt && val < 0) { *enable_or_disable_cam = true; goto done; } - /* If rule got added, enable cam */ + /* If rule got added and not already in promisc mode; enable cam */ if (!old_cnt && val > 0) { *enable_or_disable_cam = true; goto done; @@ -1462,6 +1467,11 @@ int rvu_npc_exact_promisc_disable(struct rvu *rvu, u16 pcifunc) *promisc = false; mutex_unlock(&table->lock); + /* Enable drop rule */ + rvu_npc_enable_mcam_by_entry_index(rvu, drop_mcam_idx, NIX_INTF_RX, true); + + dev_dbg(rvu->dev, "%s: disabled promisc mode (cgx=%d lmac=%d)\n", + __func__, cgx_id, lmac_id); return 0; } @@ -1503,6 +1513,11 @@ int rvu_npc_exact_promisc_enable(struct rvu *rvu, u16 pcifunc) *promisc = true; mutex_unlock(&table->lock); + /* disable drop rule */ + rvu_npc_enable_mcam_by_entry_index(rvu, drop_mcam_idx, NIX_INTF_RX, false); + + dev_dbg(rvu->dev, "%s: Enabled promisc mode (cgx=%d lmac=%d)\n", + __func__, cgx_id, lmac_id); return 0; } -- 2.25.1