Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp152189pxb; Mon, 13 Sep 2021 15:37:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxWDScYzUoLR8FPAIR4JMH6GMQUyYvmwhnMPQ0agvBQ9Jlw0NgE90zxJNIfrEA+BZpbGmei X-Received: by 2002:a5e:8349:: with SMTP id y9mr10592130iom.34.1631572672933; Mon, 13 Sep 2021 15:37:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631572672; cv=none; d=google.com; s=arc-20160816; b=FjF6RMXZ+h8WfLWE0gckF3mOf2tABHXI9NcANqUMYBIp/2cm31Gela/wwudm0T6vh+ o60fOLiSuReRsoX61BvEgtlCQl7lkEioTpCj2pgd3i5Ud2HRDoAwEkJtX8wpxt9MkLIF BbwCgp6+yv39OkgwfZyO2JijxtyV9Ki/y4KdZcBevdxl19SROYV5GPNv/JnmqP5as/yh j3zQi7kJ6ixg6IvU+9y0IMsw/ikMVCIAPNZQer7CTc0T6C9gv75/pEsvfZhgcGbj7Wro ggQiozIebxWh/8RwNUGrj34LU0piUdkRHVZninaN1qInv+lf38FaBHuo2kQoOK/4tbA3 FPsw== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=2qAMXqfP6lp4vbHtb5/t9r6VhWI+Vi2pPBpxf2SazOE=; b=KZgTceD8JfuX2K7z1OLHvtOBBVIRKbBrZa2WZv9x6oU65x7B0W1RS7mBwou5IKaKEt wRSdwsNYD5D7X2wON9lGl7mi+J+RzQ9abQmoDWScVCR7pT7w/wfqaRO2KDISxwX1SMsH sUimREJnwDjO+gKqmpB22fc+DJw0GcDpdXi+jbN6B1Oz7H+VyvcZYIG30tUzpsUdCG/+ nMe/2ul2d+vj+uVNAl1zdKfXVQr2NnaiEigVm30qVXn79o8b+LrLhLPcNN/K1yURk4ie Rf65anNrNxQwatT8B93C7Dis4bBkNTKmv5Cx5WdthA9tBfJYSPC0tgQdOX3JSvdQ7vvA zB8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=C2ZAsffE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f24si7647923jaa.118.2021.09.13.15.37.41; Mon, 13 Sep 2021 15:37:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=C2ZAsffE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1343894AbhIMONQ (ORCPT + 99 others); Mon, 13 Sep 2021 10:13:16 -0400 Received: from mail.kernel.org ([198.145.29.99]:59950 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345157AbhIMOKB (ORCPT ); Mon, 13 Sep 2021 10:10:01 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 41AFD6127C; Mon, 13 Sep 2021 13:41:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631540506; bh=xbe0RSPYdKoFwBw5BLuEHqD/RHXyvym9ZB+DHR8IeS0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=C2ZAsffEnU5x3JdaJbUoNaH0bS+ozwTvagk4758duAHd6mirvffEHtomvgVb3ccnH rLoEH8stgbZRWnaDwhxog0P/GSry3iN2nnw6+bPkQ11zo20uec6QbaLfQTkjUtz/Ef 2IcHrBgLCKrsgm6nHOyvm3gnOHzUl4Wk3vyfWzDw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sunil Goutham , "David S. Miller" , Sasha Levin Subject: [PATCH 5.13 221/300] octeontx2-pf: Fix algorithm index in MCAM rules with RSS action Date: Mon, 13 Sep 2021 15:14:42 +0200 Message-Id: <20210913131116.823632502@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210913131109.253835823@linuxfoundation.org> References: <20210913131109.253835823@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sunil Goutham [ Upstream commit e7938365459f3a6d4edf212f435c4ad635621450 ] Otherthan setting action as RSS in NPC MCAM entry, RSS flowkey algorithm index also needs to be set. Otherwise whatever algorithm is defined at flowkey index '0' will be considered by HW and pkt flows will be distributed as such. Fix this by saving the flowkey index sent by admin function while initializing RSS and then use it when framing MCAM rules. Fixes: 81a4362016e7 ("octeontx2-pf: Add RSS multi group support") Signed-off-by: Sunil Goutham Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- .../net/ethernet/marvell/octeontx2/nic/otx2_common.c | 11 +++++++++++ .../net/ethernet/marvell/octeontx2/nic/otx2_common.h | 3 +++ .../net/ethernet/marvell/octeontx2/nic/otx2_flows.c | 1 + 3 files changed, 15 insertions(+) diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c index 871404f3b8d3..25f84ad50dba 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c @@ -266,6 +266,7 @@ unlock: int otx2_set_flowkey_cfg(struct otx2_nic *pfvf) { struct otx2_rss_info *rss = &pfvf->hw.rss_info; + struct nix_rss_flowkey_cfg_rsp *rsp; struct nix_rss_flowkey_cfg *req; int err; @@ -280,6 +281,16 @@ int otx2_set_flowkey_cfg(struct otx2_nic *pfvf) req->group = DEFAULT_RSS_CONTEXT_GROUP; err = otx2_sync_mbox_msg(&pfvf->mbox); + if (err) + goto fail; + + rsp = (struct nix_rss_flowkey_cfg_rsp *) + otx2_mbox_get_rsp(&pfvf->mbox.mbox, 0, &req->hdr); + if (IS_ERR(rsp)) + goto fail; + + pfvf->hw.flowkey_alg_idx = rsp->alg_idx; +fail: mutex_unlock(&pfvf->mbox.lock); return err; } diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h index 45730d0d92f2..c652c27cd345 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h @@ -195,6 +195,9 @@ struct otx2_hw { u8 lso_udpv4_idx; u8 lso_udpv6_idx; + /* RSS */ + u8 flowkey_alg_idx; + /* MSI-X */ u8 cint_cnt; /* CQ interrupt count */ u16 npa_msixoff; /* Offset of NPA vectors */ diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c index 0b4fa92ba821..81265dbf91e2 100644 --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_flows.c @@ -682,6 +682,7 @@ static int otx2_add_flow_msg(struct otx2_nic *pfvf, struct otx2_flow *flow) if (flow->flow_spec.flow_type & FLOW_RSS) { req->op = NIX_RX_ACTIONOP_RSS; req->index = flow->rss_ctx_id; + req->flow_key_alg = pfvf->hw.flowkey_alg_idx; } else { req->op = NIX_RX_ACTIONOP_UCAST; req->index = ethtool_get_flow_spec_ring(ring_cookie); -- 2.30.2