Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1431886

[PATCH v2 2/2] net: thunderx: Fix TL4 configuration for secondary Qsets

Path csiph.com!aioe.org!gothmog.csi.it!bofh.it!news.nic.it!robomod
From sunil.kovvuri@gmail.com
Newsgroups linux.kernel
Subject [PATCH v2 2/2] net: thunderx: Fix TL4 configuration for secondary Qsets
Date Mon, 27 Jun 2016 12:10:01 +0200
Message-ID <rOBEl-7gi-7@gated-at.bofh.it> (permalink)
References <rOBEl-7gi-9@gated-at.bofh.it>
X-Original-To netdev@vger.kernel.org
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=S153XjNpmPhqiJYyK2LqwisG1XYGFR2nHSqP+t8zR+I=; b=cj8VKt6jV5qF6pk0VqQHg6CJLggNaP1qRFZUD4kLvFa7y1V1IbE/o/wFAbyVWK8TBK /MUxygOkDQlnDoR+pSgF92NLbmRhz6rM5f09YdCx8tJ7pRpj658ge+53epWqFWVrcnR+ 9Ix8rHOvKLZz/xHUHJ7m4zqmtj02Tvzn0evk2p3kDjwsPl6wAfC0m4bWzyVi3NJFn80M wNqRCLAMLHQKzVMP/vzYmL0rVWlUmpV3OOBYQGBxKU2cMdrCNlYAEU/7A2FKFQyFXvge 1aspgLY7ikrOFCNln+UY89KX4Ms19hRua7308YI9ZfXqx4KDDpDgs767+HGLKvr9/JC5 LNqg==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=S153XjNpmPhqiJYyK2LqwisG1XYGFR2nHSqP+t8zR+I=; b=gpaMHJhPGYTOFmPdqu4k2127EbAby4Td1hk4B80UuokHB8HMAQMuOsDbxo6iulSonN VfXZbkb8SRVuJMUl1S84Stdhu+dMBhzJYOXp3xemryWHCarxco3kwDyf0tootuOm548G DdarQjQne5r+wm3UrqRYWc6H7SGfPD+yaxLzbdTu+8jnPriPUqT8bLri5IzKHdr43Sm1 SynO/bnVBw4XVVuY7gW/kvxW6wBTJ1JGveTv9NyhdFbNdob6EukKju9hsYSZqsmltSmN CaysUJ1mJVwJTT37K8tDuZLBrmm2to9uu8NbbNmhwGWHTr8tWGVpUi0GbpJhlUgmBKWx tGQA==
X-Gm-Message-State ALyK8tKRrmj8JpqJPQeGQJRc/hRQnNRKHV9YfCv1N+gDNuTqLZps3QG9XDCtm7TgI3zBKw==
X-Received by 10.66.54.35 with SMTP id g3mr32988018pap.30.1467021648090; Mon, 27 Jun 2016 03:00:48 -0700 (PDT)
X-Mailer git-send-email 2.7.4
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 51
Organization linux.* mail to news gateway
X-Original-Cc linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, robert.richter@caviumnetworks.com, Naveen.Reddy@cavium.com, Sunil Goutham <sgoutham@cavium.com>
X-Original-Date Mon, 27 Jun 2016 15:30:03 +0530
X-Original-Message-ID <1467021603-26226-3-git-send-email-sunil.kovvuri@gmail.com>
X-Original-References <1467021603-26226-1-git-send-email-sunil.kovvuri@gmail.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1431886

Show key headers only | View raw


From: Sunil Goutham <sgoutham@cavium.com>

TL4 calculation for a given SQ of secondary Qsets is incorrect
and goes out of bounds and also for some SQ's TL4 chosen will
transmit data via a different BGX interface and not same as
primary Qset's interface.

This patch fixes this issue.

Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
---
 drivers/net/ethernet/cavium/thunder/nic_main.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/cavium/thunder/nic_main.c b/drivers/net/ethernet/cavium/thunder/nic_main.c
index 95f17f8..16ed203 100644
--- a/drivers/net/ethernet/cavium/thunder/nic_main.c
+++ b/drivers/net/ethernet/cavium/thunder/nic_main.c
@@ -499,6 +499,7 @@ static void nic_tx_channel_cfg(struct nicpf *nic, u8 vnic,
 	u32 rr_quantum;
 	u8 sq_idx = sq->sq_num;
 	u8 pqs_vnic;
+	int svf;
 
 	if (sq->sqs_mode)
 		pqs_vnic = nic->pqs_vf[vnic];
@@ -511,10 +512,19 @@ static void nic_tx_channel_cfg(struct nicpf *nic, u8 vnic,
 	/* 24 bytes for FCS, IPG and preamble */
 	rr_quantum = ((NIC_HW_MAX_FRS + 24) / 4);
 
-	tl4 = (lmac * NIC_TL4_PER_LMAC) + (bgx * NIC_TL4_PER_BGX);
+	if (!sq->sqs_mode) {
+		tl4 = (lmac * NIC_TL4_PER_LMAC) + (bgx * NIC_TL4_PER_BGX);
+	} else {
+		for (svf = 0; svf < MAX_SQS_PER_VF; svf++) {
+			if (nic->vf_sqs[pqs_vnic][svf] == vnic)
+				break;
+		}
+		tl4 = (MAX_LMAC_PER_BGX * NIC_TL4_PER_LMAC);
+		tl4 += (lmac * NIC_TL4_PER_LMAC * MAX_SQS_PER_VF);
+		tl4 += (svf * NIC_TL4_PER_LMAC);
+		tl4 += (bgx * NIC_TL4_PER_BGX);
+	}
 	tl4 += sq_idx;
-	if (sq->sqs_mode)
-		tl4 += vnic * 8;
 
 	tl3 = tl4 / (NIC_MAX_TL4 / NIC_MAX_TL3);
 	nic_reg_write(nic, NIC_PF_QSET_0_127_SQ_0_7_CFG2 |
-- 
2.7.4

Back to linux.kernel | Previous | Next | Find similar | Unroll thread


Thread

[PATCH v2 2/2] net: thunderx: Fix TL4 configuration for secondary Qsets sunil.kovvuri@gmail.com - 2016-06-27 12:10 +0200

csiph-web