All of lore.kernel.org
 help / color / mirror / Atom feed
* [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc
@ 2021-08-30 18:00 Subbaraya Sundeep
  2021-08-30 18:00 ` [net-next PATCH 1/4] octeontx2-af: Fix loop in free and unmap counter Subbaraya Sundeep
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Subbaraya Sundeep @ 2021-08-30 18:00 UTC (permalink / raw)
  To: davem, kuba, netdev; +Cc: sgoutham, hkelam, gakula, Subbaraya Sundeep

This patchset consists of consolidated fixes in
rvu_npc file. Two of the patches prevent infinite
loop which can happen in corner cases. One patch
is for fixing static code analyzer reported issues.
And the last patch is a minor change in npc protocol
checker hardware block to report ipv4 checksum errors
as a known error codes.

Thanks,
Sundeep


Subbaraya Sundeep (3):
  octeontx2-af: Fix loop in free and unmap counter
  octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg
  octeontx2-af: Fix static code analyzer reported issues

Sunil Goutham (1):
  octeontx2-af: Set proper errorcode for IPv4 checksum errors

 .../net/ethernet/marvell/octeontx2/af/rvu_npc.c    | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [net-next PATCH 1/4] octeontx2-af: Fix loop in free and unmap counter
  2021-08-30 18:00 [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc Subbaraya Sundeep
@ 2021-08-30 18:00 ` Subbaraya Sundeep
  2021-08-30 18:00 ` [net-next PATCH 2/4] octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg Subbaraya Sundeep
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Subbaraya Sundeep @ 2021-08-30 18:00 UTC (permalink / raw)
  To: davem, kuba, netdev; +Cc: sgoutham, hkelam, gakula, Subbaraya Sundeep

When the given counter does not belong to the entry
then code ends up in infinite loop because the loop
cursor, entry is not getting updated further. This
patch fixes that by updating entry for every iteration.

Fixes: a958dd59f9ce ("octeontx2-af: Map or unmap NPC MCAM entry and counter")
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
---
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
index b954858..6389ee7 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
@@ -2979,10 +2979,11 @@ int rvu_mbox_handler_npc_mcam_unmap_counter(struct rvu *rvu,
 		index = find_next_bit(mcam->bmap, mcam->bmap_entries, entry);
 		if (index >= mcam->bmap_entries)
 			break;
+		entry = index + 1;
+
 		if (mcam->entry2cntr_map[index] != req->cntr)
 			continue;
 
-		entry = index + 1;
 		npc_unmap_mcam_entry_and_cntr(rvu, mcam, blkaddr,
 					      index, req->cntr);
 	}
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [net-next PATCH 2/4] octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg
  2021-08-30 18:00 [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc Subbaraya Sundeep
  2021-08-30 18:00 ` [net-next PATCH 1/4] octeontx2-af: Fix loop in free and unmap counter Subbaraya Sundeep
@ 2021-08-30 18:00 ` Subbaraya Sundeep
  2021-08-30 18:00 ` [net-next PATCH 3/4] octeontx2-af: Fix static code analyzer reported issues Subbaraya Sundeep
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Subbaraya Sundeep @ 2021-08-30 18:00 UTC (permalink / raw)
  To: davem, kuba, netdev; +Cc: sgoutham, hkelam, gakula, Subbaraya Sundeep

In npc_update_vf_flow_entry function the loop cursor
'index' is being changed inside the loop causing
the loop to spin forever. This in turn hogs the kworker
thread forever and no other mbox message is processed
by AF driver after that. Fix this by using
another variable in the loop.

Fixes: 55307fcb9258 ("octeontx2-af: Add mbox messages to install and delete MCAM rules")
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
---
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
index 6389ee7..9aeecb8 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
@@ -915,7 +915,7 @@ void rvu_npc_enable_allmulti_entry(struct rvu *rvu, u16 pcifunc, int nixlf,
 static void npc_update_vf_flow_entry(struct rvu *rvu, struct npc_mcam *mcam,
 				     int blkaddr, u16 pcifunc, u64 rx_action)
 {
-	int actindex, index, bank;
+	int actindex, index, bank, entry;
 	bool enable;
 
 	if (!(pcifunc & RVU_PFVF_FUNC_MASK))
@@ -926,7 +926,7 @@ static void npc_update_vf_flow_entry(struct rvu *rvu, struct npc_mcam *mcam,
 		if (mcam->entry2target_pffunc[index] == pcifunc) {
 			bank = npc_get_bank(mcam, index);
 			actindex = index;
-			index &= (mcam->banksize - 1);
+			entry = index & (mcam->banksize - 1);
 
 			/* read vf flow entry enable status */
 			enable = is_mcam_entry_enabled(rvu, mcam, blkaddr,
@@ -936,7 +936,7 @@ static void npc_update_vf_flow_entry(struct rvu *rvu, struct npc_mcam *mcam,
 					      false);
 			/* update 'action' */
 			rvu_write64(rvu, blkaddr,
-				    NPC_AF_MCAMEX_BANKX_ACTION(index, bank),
+				    NPC_AF_MCAMEX_BANKX_ACTION(entry, bank),
 				    rx_action);
 			if (enable)
 				npc_enable_mcam_entry(rvu, mcam, blkaddr,
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [net-next PATCH 3/4] octeontx2-af: Fix static code analyzer reported issues
  2021-08-30 18:00 [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc Subbaraya Sundeep
  2021-08-30 18:00 ` [net-next PATCH 1/4] octeontx2-af: Fix loop in free and unmap counter Subbaraya Sundeep
  2021-08-30 18:00 ` [net-next PATCH 2/4] octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg Subbaraya Sundeep
@ 2021-08-30 18:00 ` Subbaraya Sundeep
  2021-08-30 18:00 ` [net-next PATCH 4/4] octeontx2-af: Set proper errorcode for IPv4 checksum errors Subbaraya Sundeep
  2021-08-31 11:10 ` [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: Subbaraya Sundeep @ 2021-08-30 18:00 UTC (permalink / raw)
  To: davem, kuba, netdev; +Cc: sgoutham, hkelam, gakula, Subbaraya Sundeep

This patch fixes the static code analyzer reported issues
in rvu_npc.c. The reported errors are different sizes of
operands in bitops and returning uninitialized values.

Fixes: 651cd2652339 ("octeontx2-af: MCAM entry installation support")
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
---
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
index 9aeecb8..4d94bd0 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
@@ -20,7 +20,7 @@
 #define RSVD_MCAM_ENTRIES_PER_NIXLF	1 /* Ucast for LFs */
 
 #define NPC_PARSE_RESULT_DMAC_OFFSET	8
-#define NPC_HW_TSTAMP_OFFSET		8
+#define NPC_HW_TSTAMP_OFFSET		8ULL
 #define NPC_KEX_CHAN_MASK		0xFFFULL
 #define NPC_KEX_PF_FUNC_MASK		0xFFFFULL
 
@@ -2154,7 +2154,7 @@ static void npc_unmap_mcam_entry_and_cntr(struct rvu *rvu,
 					  int blkaddr, u16 entry, u16 cntr)
 {
 	u16 index = entry & (mcam->banksize - 1);
-	u16 bank = npc_get_bank(mcam, entry);
+	u32 bank = npc_get_bank(mcam, entry);
 
 	/* Remove mapping and reduce counter's refcnt */
 	mcam->entry2cntr_map[entry] = NPC_MCAM_INVALID_MAP;
@@ -2777,8 +2777,8 @@ int rvu_mbox_handler_npc_mcam_shift_entry(struct rvu *rvu,
 	struct npc_mcam *mcam = &rvu->hw->mcam;
 	u16 pcifunc = req->hdr.pcifunc;
 	u16 old_entry, new_entry;
+	int blkaddr, rc = 0;
 	u16 index, cntr;
-	int blkaddr, rc;
 
 	blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NPC, 0);
 	if (blkaddr < 0)
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [net-next PATCH 4/4] octeontx2-af: Set proper errorcode for IPv4 checksum errors
  2021-08-30 18:00 [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc Subbaraya Sundeep
                   ` (2 preceding siblings ...)
  2021-08-30 18:00 ` [net-next PATCH 3/4] octeontx2-af: Fix static code analyzer reported issues Subbaraya Sundeep
@ 2021-08-30 18:00 ` Subbaraya Sundeep
  2021-08-31 11:10 ` [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: Subbaraya Sundeep @ 2021-08-30 18:00 UTC (permalink / raw)
  To: davem, kuba, netdev; +Cc: sgoutham, hkelam, gakula, Subbaraya Sundeep

From: Sunil Goutham <sgoutham@marvell.com>

With current config, for packets with IPv4 checksum errors,
errorcode is being set to UNKNOWN. Hence added a separate
errorcodes for outer and inner IPv4 checksum and changed
NPC configuration accordingly.

Also turn on L2 multicast address check in NPC protocol check block.

Fixes: 6b3321bacc5a ("octeontx2-af: Enable packet length and csum validation")
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
---
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
index 4d94bd0..5efb417 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c
@@ -2020,14 +2020,15 @@ int rvu_npc_init(struct rvu *rvu)
 
 	/* Enable below for Rx pkts.
 	 * - Outer IPv4 header checksum validation.
-	 * - Detect outer L2 broadcast address and set NPC_RESULT_S[L2M].
+	 * - Detect outer L2 broadcast address and set NPC_RESULT_S[L2B].
+	 * - Detect outer L2 multicast address and set NPC_RESULT_S[L2M].
 	 * - Inner IPv4 header checksum validation.
 	 * - Set non zero checksum error code value
 	 */
 	rvu_write64(rvu, blkaddr, NPC_AF_PCK_CFG,
 		    rvu_read64(rvu, blkaddr, NPC_AF_PCK_CFG) |
-		    BIT_ULL(32) | BIT_ULL(24) | BIT_ULL(6) |
-		    BIT_ULL(2) | BIT_ULL(1));
+		    ((u64)NPC_EC_OIP4_CSUM << 32) | (NPC_EC_IIP4_CSUM << 24) |
+		    BIT_ULL(7) | BIT_ULL(6) | BIT_ULL(2) | BIT_ULL(1));
 
 	rvu_npc_setup_interfaces(rvu, blkaddr);
 
-- 
2.7.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc
  2021-08-30 18:00 [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc Subbaraya Sundeep
                   ` (3 preceding siblings ...)
  2021-08-30 18:00 ` [net-next PATCH 4/4] octeontx2-af: Set proper errorcode for IPv4 checksum errors Subbaraya Sundeep
@ 2021-08-31 11:10 ` patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2021-08-31 11:10 UTC (permalink / raw)
  To: Subbaraya Sundeep; +Cc: davem, kuba, netdev, sgoutham, hkelam, gakula

Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Mon, 30 Aug 2021 23:30:42 +0530 you wrote:
> This patchset consists of consolidated fixes in
> rvu_npc file. Two of the patches prevent infinite
> loop which can happen in corner cases. One patch
> is for fixing static code analyzer reported issues.
> And the last patch is a minor change in npc protocol
> checker hardware block to report ipv4 checksum errors
> as a known error codes.
> 
> [...]

Here is the summary with links:
  - [net-next,1/4] octeontx2-af: Fix loop in free and unmap counter
    https://git.kernel.org/netdev/net-next/c/6537e96d743b
  - [net-next,2/4] octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg
    https://git.kernel.org/netdev/net-next/c/f2e4568ec951
  - [net-next,3/4] octeontx2-af: Fix static code analyzer reported issues
    https://git.kernel.org/netdev/net-next/c/698a82ebfb4b
  - [net-next,4/4] octeontx2-af: Set proper errorcode for IPv4 checksum errors
    https://git.kernel.org/netdev/net-next/c/1e4428b6dba9

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-08-31 11:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-30 18:00 [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc Subbaraya Sundeep
2021-08-30 18:00 ` [net-next PATCH 1/4] octeontx2-af: Fix loop in free and unmap counter Subbaraya Sundeep
2021-08-30 18:00 ` [net-next PATCH 2/4] octeontx2-af: Fix mailbox errors in nix_rss_flowkey_cfg Subbaraya Sundeep
2021-08-30 18:00 ` [net-next PATCH 3/4] octeontx2-af: Fix static code analyzer reported issues Subbaraya Sundeep
2021-08-30 18:00 ` [net-next PATCH 4/4] octeontx2-af: Set proper errorcode for IPv4 checksum errors Subbaraya Sundeep
2021-08-31 11:10 ` [net-next PATCH 0/4] octeontx2-af: Miscellaneous fixes in npc patchwork-bot+netdevbpf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.