[dpdk-dev] [PATCH v7 8/8] rte_ethdev.h: align sign and scope of temp var
Andy Green
andy at warmcat.com
Tue May 22 03:24:47 CEST 2018
/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 at warmcat.com>
---
lib/librte_ethdev/rte_ethdev.h | 15 +++++++++------
1 file changed, 9 insertions(+), 6 deletions(-)
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);
}
More information about the dev
mailing list