From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.warmcat.com (mail.warmcat.com [163.172.24.82]) by dpdk.org (Postfix) with ESMTP id 1465C3237 for ; Tue, 22 May 2018 03:24:51 +0200 (CEST) From: Andy Green To: dev@dpdk.org Cc: thomas@monjalon.net Date: Tue, 22 May 2018 09:24:47 +0800 Message-ID: <152695228744.111551.1634282119196550467.stgit@localhost.localdomain> In-Reply-To: <152695215195.111551.10652921922687464367.stgit@localhost.localdomain> References: <152695215195.111551.10652921922687464367.stgit@localhost.localdomain> User-Agent: StGit/unknown-version Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [dpdk-dev] [PATCH v7 8/8] rte_ethdev.h: align sign and scope of temp var X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 22 May 2018 01:24:51 -0000 /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 --- 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); }