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