nvethernet: handling new CERT errors

CERT INT08-C
CERT STR07-C

Jira NET-2907

Change-Id: If331caf9838840073792de5ac722f268920c4a87
Signed-off-by: Sanath Kumar Gampa <sgampa@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3328902
Reviewed-by: Bhadram Varka <vbhadram@nvidia.com>
Reviewed-by: Srinivas Ramachandran <srinivasra@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Sanath Kumar Gampa
2025-03-26 07:05:03 +00:00
committed by Jon Hunter
parent d3cdce84ec
commit 5a5cf6254f
3 changed files with 33 additions and 22 deletions

View File

@@ -338,14 +338,19 @@ static inline bool valid_tx_len(unsigned int length)
static inline int ether_avail_txdesc_cnt(struct osi_dma_priv_data *osi_dma,
struct osi_tx_ring *tx_ring)
{
int ret = -EINVAL;
if ((osi_dma->tx_ring_sz == 0U) || (tx_ring->cur_tx_idx == 0U) ||
(tx_ring->clean_idx < (tx_ring->cur_tx_idx - 1U))) {
return ret;
if (unlikely((osi_dma->tx_ring_sz == 0U) ||
(tx_ring->cur_tx_idx >= osi_dma->tx_ring_sz))) {
return -EINVAL;
}
if (tx_ring->clean_idx > (tx_ring->cur_tx_idx + 1U)) {
return ((tx_ring->clean_idx - (tx_ring->cur_tx_idx + 1U)) &
(osi_dma->tx_ring_sz - 1U));
} else {
return (((tx_ring->clean_idx + osi_dma->tx_ring_sz) -
(tx_ring->cur_tx_idx + 1U)) &
(osi_dma->tx_ring_sz - 1U));
}
return ((tx_ring->clean_idx - tx_ring->cur_tx_idx - 1U) &
(osi_dma->tx_ring_sz - 1U));
}
/**