[dpdk-dev,v4,15/23] rte_ethdev.h: align sign and scope of temp var

Message ID 152627464301.53156.5866882653553223698.stgit@localhost.localdomain (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Andy Green May 14, 2018, 5:10 a.m. UTC
  Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_ethdev/rte_ethdev.h |   25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)
  

Comments

Bruce Richardson May 17, 2018, 1:54 p.m. UTC | #1
On Mon, May 14, 2018 at 01:10:43PM +0800, Andy Green wrote:
> Signed-off-by: Andy Green <andy@warmcat.com>
> ---
>  lib/librte_ethdev/rte_ethdev.h |   25 +++++++++++++++----------
>  1 file changed, 15 insertions(+), 10 deletions(-)
> 

While I dislike the changes below, since I believe it's always more
readable to declare variables at first use, if the changes are needed to
remove compiler errors in apps, then they need to be fixed.

Patch needs a suitable commit log explaining the changes or giving the
error message.


> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> index 49c2ebbd5..2cb5fe3be 100644
> --- a/lib/librte_ethdev/rte_ethdev.h
> +++ b/lib/librte_ethdev/rte_ethdev.h
> @@ -3801,6 +3801,7 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
>  		 struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
>  {
>  	struct rte_eth_dev *dev = &rte_eth_devices[port_id];
> +	uint16_t nb_rx;
>  
>  #ifdef RTE_LIBRTE_ETHDEV_DEBUG
>  	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, 0);
> @@ -3811,18 +3812,22 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
>  		return 0;
>  	}
>  #endif
> -	int16_t nb_rx = (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
> -			rx_pkts, nb_pkts);
> +	nb_rx = (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
> +				     rx_pkts, nb_pkts);
>  
>  #ifdef RTE_ETHDEV_RXTX_CALLBACKS
> -	struct rte_eth_rxtx_callback *cb = dev->post_rx_burst_cbs[queue_id];
> -
> -	if (unlikely(cb != NULL)) {
> -		do {
> -			nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
> -						nb_pkts, cb->param);
> -			cb = cb->next;
> -		} while (cb != NULL);
> +	{
> +		struct rte_eth_rxtx_callback *cb =
> +				dev->post_rx_burst_cbs[queue_id];
> +
> +		if (unlikely(cb != NULL)) {
> +			do {
> +				nb_rx = cb->fn.rx(port_id, queue_id,
> +						  rx_pkts, nb_rx,
> +						  nb_pkts, cb->param);
> +				cb = cb->next;
> +			} while (cb != NULL);
> +		}
>  	}
>  #endif

Rather than increasing the level of indentation needed with the extra
braces, it's probably best to separate variable definition and assignment
as you did in the first change above.

/Bruce
  
Andy Green May 17, 2018, 2:17 p.m. UTC | #2
On 05/17/2018 09:54 PM, Bruce Richardson wrote:
> On Mon, May 14, 2018 at 01:10:43PM +0800, Andy Green wrote:
>> Signed-off-by: Andy Green <andy@warmcat.com>
>> ---
>>   lib/librte_ethdev/rte_ethdev.h |   25 +++++++++++++++----------
>>   1 file changed, 15 insertions(+), 10 deletions(-)
>>
> 
> While I dislike the changes below, since I believe it's always more
> readable to declare variables at first use, if the changes are needed to
> remove compiler errors in apps, then they need to be fixed.
> 
> Patch needs a suitable commit log explaining the changes or giving the
> error message.

It has this in the last push (which overlapped with your comment)... I 
seem to have missed the error about declarations after code not being 
allowed in C90, but I guess that part being an issue is not controversial.

> 
>> diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
>> index 49c2ebbd5..2cb5fe3be 100644
>> --- a/lib/librte_ethdev/rte_ethdev.h
>> +++ b/lib/librte_ethdev/rte_ethdev.h
>> @@ -3801,6 +3801,7 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
>>   		 struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
>>   {
>>   	struct rte_eth_dev *dev = &rte_eth_devices[port_id];
>> +	uint16_t nb_rx;
>>   
>>   #ifdef RTE_LIBRTE_ETHDEV_DEBUG
>>   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, 0);
>> @@ -3811,18 +3812,22 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
>>   		return 0;
>>   	}
>>   #endif
>> -	int16_t nb_rx = (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
>> -			rx_pkts, nb_pkts);
>> +	nb_rx = (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
>> +				     rx_pkts, nb_pkts);
>>   
>>   #ifdef RTE_ETHDEV_RXTX_CALLBACKS
>> -	struct rte_eth_rxtx_callback *cb = dev->post_rx_burst_cbs[queue_id];
>> -
>> -	if (unlikely(cb != NULL)) {
>> -		do {
>> -			nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
>> -						nb_pkts, cb->param);
>> -			cb = cb->next;
>> -		} while (cb != NULL);
>> +	{
>> +		struct rte_eth_rxtx_callback *cb =
>> +				dev->post_rx_burst_cbs[queue_id];
>> +
>> +		if (unlikely(cb != NULL)) {
>> +			do {
>> +				nb_rx = cb->fn.rx(port_id, queue_id,
>> +						  rx_pkts, nb_rx,
>> +						  nb_pkts, cb->param);
>> +				cb = cb->next;
>> +			} while (cb != NULL);
>> +		}
>>   	}
>>   #endif
> 
> Rather than increasing the level of indentation needed with the extra
> braces, it's probably best to separate variable definition and assignment
> as you did in the first change above.

IIRC my thinking was I had a choice to repeat the conditional 
compilation stuff around the declaration (because it's in an #ifdef), 
(void)cb; to dodge the unused var warning, or add a basic block for it 
to scope to.  The last one didn't seem so bad.

-Andy

> /Bruce
>
  
Bruce Richardson May 17, 2018, 2:26 p.m. UTC | #3
On Thu, May 17, 2018 at 10:17:04PM +0800, Andy Green wrote:
> 
> 
> On 05/17/2018 09:54 PM, Bruce Richardson wrote:
> > On Mon, May 14, 2018 at 01:10:43PM +0800, Andy Green wrote:
> > > Signed-off-by: Andy Green <andy@warmcat.com>
> > > ---
> > >   lib/librte_ethdev/rte_ethdev.h |   25 +++++++++++++++----------
> > >   1 file changed, 15 insertions(+), 10 deletions(-)
> > > 
> > 
> > While I dislike the changes below, since I believe it's always more
> > readable to declare variables at first use, if the changes are needed to
> > remove compiler errors in apps, then they need to be fixed.
> > 
> > Patch needs a suitable commit log explaining the changes or giving the
> > error message.
> 
> It has this in the last push (which overlapped with your comment)... I seem
> to have missed the error about declarations after code not being allowed in
> C90, but I guess that part being an issue is not controversial.
> 
> > 
> > > diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
> > > index 49c2ebbd5..2cb5fe3be 100644
> > > --- a/lib/librte_ethdev/rte_ethdev.h
> > > +++ b/lib/librte_ethdev/rte_ethdev.h
> > > @@ -3801,6 +3801,7 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
> > >   		 struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
> > >   {
> > >   	struct rte_eth_dev *dev = &rte_eth_devices[port_id];
> > > +	uint16_t nb_rx;
> > >   #ifdef RTE_LIBRTE_ETHDEV_DEBUG
> > >   	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, 0);
> > > @@ -3811,18 +3812,22 @@ rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
> > >   		return 0;
> > >   	}
> > >   #endif
> > > -	int16_t nb_rx = (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
> > > -			rx_pkts, nb_pkts);
> > > +	nb_rx = (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
> > > +				     rx_pkts, nb_pkts);
> > >   #ifdef RTE_ETHDEV_RXTX_CALLBACKS
> > > -	struct rte_eth_rxtx_callback *cb = dev->post_rx_burst_cbs[queue_id];
> > > -
> > > -	if (unlikely(cb != NULL)) {
> > > -		do {
> > > -			nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
> > > -						nb_pkts, cb->param);
> > > -			cb = cb->next;
> > > -		} while (cb != NULL);
> > > +	{
> > > +		struct rte_eth_rxtx_callback *cb =
> > > +				dev->post_rx_burst_cbs[queue_id];
> > > +
> > > +		if (unlikely(cb != NULL)) {
> > > +			do {
> > > +				nb_rx = cb->fn.rx(port_id, queue_id,
> > > +						  rx_pkts, nb_rx,
> > > +						  nb_pkts, cb->param);
> > > +				cb = cb->next;
> > > +			} while (cb != NULL);
> > > +		}
> > >   	}
> > >   #endif
> > 
> > Rather than increasing the level of indentation needed with the extra
> > braces, it's probably best to separate variable definition and assignment
> > as you did in the first change above.
> 
> IIRC my thinking was I had a choice to repeat the conditional compilation
> stuff around the declaration (because it's in an #ifdef), (void)cb; to dodge
> the unused var warning, or add a basic block for it to scope to.  The last
> one didn't seem so bad.
> 
Ok, that makes sense. For completeness, I'd add a "do" and "while(0)" to the
braces, but that's not important here, it's ok as-is.

BTW: for your v5, I don't think you kept the previous ack's that myself and
Olivier had given for a number of your patches. It's strongly recommended
that you put any previously-given acks in any new revisions after the
signoff line, so as to make it easier to track for maintainers, and to save
us having to re-ack the same patches multiple times.

Thanks,
/Bruce
  

Patch

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 49c2ebbd5..2cb5fe3be 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -3801,6 +3801,7 @@  rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
 		 struct rte_mbuf **rx_pkts, const uint16_t nb_pkts)
 {
 	struct rte_eth_dev *dev = &rte_eth_devices[port_id];
+	uint16_t nb_rx;
 
 #ifdef RTE_LIBRTE_ETHDEV_DEBUG
 	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, 0);
@@ -3811,18 +3812,22 @@  rte_eth_rx_burst(uint16_t port_id, uint16_t queue_id,
 		return 0;
 	}
 #endif
-	int16_t nb_rx = (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
-			rx_pkts, nb_pkts);
+	nb_rx = (*dev->rx_pkt_burst)(dev->data->rx_queues[queue_id],
+				     rx_pkts, nb_pkts);
 
 #ifdef RTE_ETHDEV_RXTX_CALLBACKS
-	struct rte_eth_rxtx_callback *cb = dev->post_rx_burst_cbs[queue_id];
-
-	if (unlikely(cb != NULL)) {
-		do {
-			nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
-						nb_pkts, cb->param);
-			cb = cb->next;
-		} while (cb != NULL);
+	{
+		struct rte_eth_rxtx_callback *cb =
+				dev->post_rx_burst_cbs[queue_id];
+
+		if (unlikely(cb != NULL)) {
+			do {
+				nb_rx = cb->fn.rx(port_id, queue_id,
+						  rx_pkts, nb_rx,
+						  nb_pkts, cb->param);
+				cb = cb->next;
+			} while (cb != NULL);
+		}
 	}
 #endif