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 <a...@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

Reply via email to