[dpdk-dev] [PATCH] net/i40e: fix FDIR check programming status error

Zhao1, Wei wei.zhao1 at intel.com
Fri Jul 13 05:21:31 CEST 2018



> -----Original Message-----
> From: Zhang, Qi Z
> Sent: Friday, July 13, 2018 11:16 AM
> To: Zhao1, Wei <wei.zhao1 at intel.com>; dev at dpdk.org
> Cc: stable at dpdk.org
> Subject: RE: [PATCH] net/i40e: fix FDIR check programming status error
> 
> 
> 
> > -----Original Message-----
> > From: Zhao1, Wei
> > Sent: Friday, July 13, 2018 11:12 AM
> > To: Zhang, Qi Z <qi.z.zhang at intel.com>; dev at dpdk.org
> > Cc: stable at dpdk.org
> > Subject: RE: [PATCH] net/i40e: fix FDIR check programming status error
> >
> > This  code change is ok also,
> 
> I don't think so, with your change, it will always return 0 if DD bit is set, but
> we still need to return -1 if there is any error in descriptor, right?

Yes, you are right!
I will commit v2!!
I find  a bug but give out an error fix patch, orz....

> 
> but it seems need to add more Judging branch?
> > IF you think it is almost the same, I WILL commit a new v2.
> >
> >
> > > -----Original Message-----
> > > From: Zhang, Qi Z
> > > Sent: Friday, July 13, 2018 11:06 AM
> > > To: Zhao1, Wei <wei.zhao1 at intel.com>; dev at dpdk.org
> > > Cc: stable at dpdk.org
> > > Subject: RE: [PATCH] net/i40e: fix FDIR check programming status
> > > error
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Zhao1, Wei
> > > > Sent: Wednesday, July 11, 2018 4:25 PM
> > > > To: dev at dpdk.org
> > > > Cc: Zhang, Qi Z <qi.z.zhang at intel.com>; stable at dpdk.org; Zhao1,
> > > > Wei <wei.zhao1 at intel.com>
> > > > Subject: [PATCH] net/i40e: fix FDIR check programming status error
> > > >
> > > > In i40e FDIR PMD code for checking programming status function
> > > > i40e_check_fdir_programming_status(), the initial value of return
> > > > value ret should be set to -1 not 0, because if DD bit of
> > > > I40E_RX_DESC_STATUS_DD is not write back, this function will
> > > > return
> > > > 0 to upper function, this give an error info to upper function,
> > > > the fact for this is it is time out for DD write back and it should return -1.
> > > >
> > > > Fixes: 05999aab4ca6 ("i40e: add or delete flow director")
> > > > Signed-off-by: Wei Zhao <wei.zhao1 at intel.com>
> > > > ---
> > > >  drivers/net/i40e/i40e_fdir.c | 3 ++-
> > > >  1 file changed, 2 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/net/i40e/i40e_fdir.c
> > > > b/drivers/net/i40e/i40e_fdir.c index
> > > > d41601a..b958bf6 100644
> > > > --- a/drivers/net/i40e/i40e_fdir.c
> > > > +++ b/drivers/net/i40e/i40e_fdir.c
> > > > @@ -1315,7 +1315,7 @@ i40e_check_fdir_programming_status(struct
> > > > i40e_rx_queue *rxq)
> > > >  	uint32_t rx_status;
> > > >  	uint32_t len, id;
> > > >  	uint32_t error;
> > > > -	int ret = 0;
> > > > +	int ret = -1;
> > > >
> > > >  	rxdp = &rxq->rx_ring[rxq->rx_tail];
> > > >  	qword1 = rte_le_to_cpu_64(rxdp->wb.qword1.status_error_len);
> > > > @@ -1360,6 +1360,7 @@ i40e_check_fdir_programming_status(struct
> > > > i40e_rx_queue *rxq)
> > > >  			I40E_PCI_REG_WRITE(rxq->qrx_tail, rxq- nb_rx_desc
> - 1);
> > > >  		else
> > > >  			I40E_PCI_REG_WRITE(rxq->qrx_tail, rxq->rx_tail - 1);
> > > > +		ret = 0;
> > >
> > > Is it possible to overwrite previous ret = -1 which is not what we want?
> > >
> > > I would prefer
> > >
> > > int ret = 0;
> > >
> > > If (dd bit is set) {
> > > 	If xxx
> > > 		Ret = -1;
> > > 	If xxx
> > > 		Ret = -1;
> > > } else {
> > > 	ret = -1;
> > > }
> > >
> > > return ret;
> > >
> > > >  	}
> > > >
> > > >  	return ret;
> > > > --
> > > > 2.7.5



More information about the dev mailing list