[dpdk-dev,v4,15/23] rte_ethdev.h: align sign and scope of temp var
Checks
Commit Message
Signed-off-by: Andy Green <andy@warmcat.com>
---
lib/librte_ethdev/rte_ethdev.h | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
Comments
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
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
>
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
@@ -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