net/nfp: fix field initialization in TX descriptor

Message ID 1528710637-8313-1-git-send-email-alejandro.lucero@netronome.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series net/nfp: fix field initialization in TX descriptor |

Checks

Context Check Description
ci/Intel-compilation fail Compilation issues

Commit Message

Alejandro Lucero June 11, 2018, 9:50 a.m. UTC
  TX descriptor eop_offset field is not initialized and it could
contain garbage. This patch fixes the potential problem setting
EOP as the only subfield. The other subfield, data offset, is
not used by now.

Fixes: b812daadad0d ("nfp: add Rx and Tx")

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
 drivers/net/nfp/nfp_net.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
  

Comments

Ferruh Yigit June 14, 2018, 9:17 a.m. UTC | #1
On 6/11/2018 10:50 AM, Alejandro Lucero wrote:
> TX descriptor eop_offset field is not initialized and it could
> contain garbage. This patch fixes the potential problem setting
> EOP as the only subfield. The other subfield, data offset, is
> not used by now.
> 
> Fixes: b812daadad0d ("nfp: add Rx and Tx")
> 
> Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>

Applied to dpdk-next-net/master, thanks.

stable flag:
     Cc: stable@dpdk.org

is the way to ask patches to be merged to stable trees.
In this patch is stable flag forgotten or intentionally not added?

I have added stable flag, but if this was intentionally left out please let me
know so that I can remove it back.
  
Alejandro Lucero June 14, 2018, 1:31 p.m. UTC | #2
Hi Ferruh,

On Thu, Jun 14, 2018 at 10:17 AM, Ferruh Yigit <ferruh.yigit@intel.com>
wrote:

> On 6/11/2018 10:50 AM, Alejandro Lucero wrote:
> > TX descriptor eop_offset field is not initialized and it could
> > contain garbage. This patch fixes the potential problem setting
> > EOP as the only subfield. The other subfield, data offset, is
> > not used by now.
> >
> > Fixes: b812daadad0d ("nfp: add Rx and Tx")
> >
> > Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
>
> Applied to dpdk-next-net/master, thanks.
>
>
Thanks!


> stable flag:
>      Cc: stable@dpdk.org
>
> is the way to ask patches to be merged to stable trees.
> In this patch is stable flag forgotten or intentionally not added?
>
> I have added stable flag, but if this was intentionally left out please
> let me
> know so that I can remove it back.
>

I though it was enough ccing to stable. I will add that flag in the commit
from now on.

Thanks
  

Patch

diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index faad1ee..3658696 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -2253,11 +2253,15 @@  uint32_t nfp_net_txq_full(struct nfp_net_txq *txq)
 				txq->wr_p = 0;
 
 			pkt_size -= dma_size;
-			if (!pkt_size)
-				/* End of packet */
-				txds->offset_eop |= PCIE_DESC_TX_EOP;
+
+			/*
+			 * Making the EOP, packets with just one segment
+			 * the priority
+			 */
+			if (likely(!pkt_size))
+				txds->offset_eop = PCIE_DESC_TX_EOP;
 			else
-				txds->offset_eop &= PCIE_DESC_TX_OFFSET_MASK;
+				txds->offset_eop = 0;
 
 			pkt = pkt->next;
 			/* Referencing next free TX descriptor */