ethdev: fix type and scope of variables in Rx burst
authorAndy Green <andy@warmcat.com>
Tue, 22 May 2018 01:24:47 +0000 (09:24 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 22 May 2018 14:32:36 +0000 (16:32 +0200)
commit3291abb5a2a5f24c109ab74e6aad0545927333a7
tree4b496abf2f9ccd1d7878f6e02e8de5403f578e18
parent9d0b59f84e1170b12a128cdcccab5711f25b5dd8
ethdev: fix type and scope of variables in Rx burst

GCC 8.1 warned:

In function 'rte_eth_rx_burst':
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],
                  ^
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,
                                                  ^~~~~
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,
            ^~
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.

Fixes: 467465d86df1 ("ethdev: add packet count parameter to Rx callback")
Fixes: 4dc294158cac ("ethdev: support optional Rx and Tx callbacks")
Cc: stable@dpdk.org
Signed-off-by: Andy Green <andy@warmcat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
lib/librte_ethdev/rte_ethdev.h