[dpdk-dev,v7,8/8] rte_ethdev.h: align sign and scope of temp var

Message ID 152695228744.111551.1634282119196550467.stgit@localhost.localdomain (mailing list archive)
State Accepted, 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 22, 2018, 1:24 a.m. UTC
  /projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
In function 'rte_eth_rx_burst':
/projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
3836:18: warning: conversion to 'int16_t' {aka 'short
int'} from 'uint16_t' {aka 'short unsigned int'} may
change the sign of the result [-Wsign-conversion]
  int16_t nb_rx = (*dev->rx_pkt_burst)(dev->data->
rx_queues[queue_id],
                  ^
/projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
3844:50: warning: conversion to 'uint16_t' {aka 'short
unsigned int'} from 'int16_t' {aka 'short int'} may
change the sign of the result [-Wsign-conversion]
    nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
                                                  ^~~~~
/projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
3844:12: warning: conversion to 'int16_t' {aka 'short
int'} from 'uint16_t' {aka 'short unsigned int'} may
change the sign of the result [-Wsign-conversion]
    nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
            ^~
/projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
3851:9: warning: conversion to 'uint16_t' {aka 'short
unsigned int'} from 'int16_t' {aka 'short int'} may
change the sign of the result [-Wsign-conversion]
  return nb_rx;
         ^~~~~

The second part of the patch is solved by its own basic
block because it is inside a preprocessor conditional.

Bringing the declaration of the var to the top of the
function would require that also being given its own
preprocessor conditional, or a (void)var to avoid an
unused var warning.  The basic block is no worse than
those imho.

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_ethdev/rte_ethdev.h |   15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
  

Comments

Bruce Richardson May 22, 2018, 9:12 a.m. UTC | #1
On Tue, May 22, 2018 at 09:24:47AM +0800, Andy Green wrote:
> /projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
> In function 'rte_eth_rx_burst':
> /projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
> 3836:18: warning: conversion to 'int16_t' {aka 'short
> int'} from 'uint16_t' {aka 'short unsigned int'} may
> change the sign of the result [-Wsign-conversion]
>   int16_t nb_rx = (*dev->rx_pkt_burst)(dev->data->
> rx_queues[queue_id],
>                   ^
> /projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
> 3844:50: warning: conversion to 'uint16_t' {aka 'short
> unsigned int'} from 'int16_t' {aka 'short int'} may
> change the sign of the result [-Wsign-conversion]
>     nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
>                                                   ^~~~~
> /projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
> 3844:12: warning: conversion to 'int16_t' {aka 'short
> int'} from 'uint16_t' {aka 'short unsigned int'} may
> change the sign of the result [-Wsign-conversion]
>     nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
>             ^~
> /projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
> 3851:9: warning: conversion to 'uint16_t' {aka 'short
> unsigned int'} from 'int16_t' {aka 'short int'} may
> change the sign of the result [-Wsign-conversion]
>   return nb_rx;
>          ^~~~~
> 
> The second part of the patch is solved by its own basic
> block because it is inside a preprocessor conditional.
> 
> Bringing the declaration of the var to the top of the
> function would require that also being given its own
> preprocessor conditional, or a (void)var to avoid an
> unused var warning.  The basic block is no worse than
> those imho.
> 
> Signed-off-by: Andy Green <andy@warmcat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  
Thomas Monjalon May 22, 2018, 2:18 p.m. UTC | #2
22/05/2018 03:24, Andy Green:
> -			nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx,
> -						nb_pkts, cb->param);
> +			nb_rx = cb->fn.rx(port_id, queue_id,
> +					  rx_pkts, nb_rx,
> +					  nb_pkts, cb->param);

This change seems to be a leftover of previous revision.
I will remove it from the patch.
  

Patch

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index d52c1bed9..504253816 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -3823,6 +3823,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);
@@ -3833,16 +3834,18 @@  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(dev->post_rx_burst_cbs[queue_id] != 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);
+			nb_rx = cb->fn.rx(port_id, queue_id,
+					  rx_pkts, nb_rx,
+					  nb_pkts, cb->param);
 			cb = cb->next;
 		} while (cb != NULL);
 	}