DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus
@ 2018-05-11  1:58 Andy Green
  2018-05-11  1:58 ` [dpdk-dev] [PATCH v2 01/24] lib/librte_eal: import libbsd strlcpy Andy Green
                   ` (24 more replies)
  0 siblings, 25 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:58 UTC (permalink / raw)
  To: dev

The following series fixes build problems in dpdk master
headers, found when using it as the dpdk subproject in
lagopus.  These errors are coming when you try to use
the dpdk headers, not when you build dpdk itself.

Two patches are updated to follow requests for larger
work.

---

Andy Green (24):
      lib/librte_eal: import libbsd strlcpy
      lib/librte_ethdev: change eth-dev-ops API to return int
      rte_common.h: cast gcc builtin result to avoid complaints
      lib/librte_eal: explicit tmp cast
      lib/librte_eal: explicit cast for signed change
      /lib/librte_eal: stage cast from uint64 to long
      rte_spinlock.h: stack declarations before code
      rte_ring_generic.h: stack declarations before code
      rte_ring.h: remove signed type flipflopping
      rte_dev.h: stack declaration at top of own basic block
      rte_mbuf.h: avoid warnings from inadvertant promotion
      rte_mbuf.h: explicit casts for int16 to uint16
      rte_mbuf.h: make sure RTE-MIN compares same types
      rte_mbuf.h: explicit cast restricting ptrdiff to uint16
      rte_mbuf.h: explicit cast for size type to uint32
      rte_mbuf.h: explicit casts to uint16 to avoid warnings
      rte_byteorder.h: explicit cast for return promotion
      rte_ether.h: explicit cast avoiding truncation warning
      rte_ether.h: stack vars declared at top of function
      rte_ethdev.h: align sign and scope of temp var
      rte_ethdev.h: explicit cast for truncation
      rte_hash_crc.h: stack vars declared at top of function
      rte_hash_crc.h: explicit casts for truncation
      test_table_pipeline: repair munged indirection level


 drivers/net/ark/ark_ethdev_rx.c                    |    4 +-
 drivers/net/ark/ark_ethdev_rx.h                    |    3 +-
 drivers/net/avf/avf_rxtx.c                         |    4 +-
 drivers/net/avf/avf_rxtx.h                         |    2 +
 drivers/net/bnxt/bnxt_ethdev.c                     |    5 ++-
 drivers/net/dpaa/dpaa_ethdev.c                     |    4 +-
 drivers/net/dpaa2/dpaa2_ethdev.c                   |    6 ++-
 drivers/net/e1000/e1000_ethdev.h                   |    6 +--
 drivers/net/e1000/em_rxtx.c                        |    4 +-
 drivers/net/e1000/igb_rxtx.c                       |    4 +-
 drivers/net/enic/enic_ethdev.c                     |    9 ++---
 drivers/net/i40e/i40e_rxtx.c                       |    4 +-
 drivers/net/i40e/i40e_rxtx.h                       |    3 +-
 drivers/net/ixgbe/ixgbe_ethdev.h                   |    3 +-
 drivers/net/ixgbe/ixgbe_rxtx.c                     |    4 +-
 drivers/net/nfp/nfp_net.c                          |    9 ++---
 drivers/net/sfc/sfc_ethdev.c                       |    4 +-
 drivers/net/thunderx/nicvf_ethdev.c                |    2 +
 drivers/net/thunderx/nicvf_rxtx.c                  |    4 +-
 drivers/net/thunderx/nicvf_rxtx.h                  |    2 +
 drivers/net/vhost/rte_eth_vhost.c                  |    4 +-
 examples/l3fwd-power/main.c                        |    2 +
 lib/librte_eal/common/eal_common_string_fns.c      |   34 +++++++++++++++++++
 .../common/include/arch/x86/rte_memcpy.h           |    8 ++--
 .../common/include/arch/x86/rte_spinlock.h         |    4 ++
 .../common/include/generic/rte_byteorder.h         |    2 +
 lib/librte_eal/common/include/rte_common.h         |    2 +
 lib/librte_eal/common/include/rte_dev.h            |   15 +++++---
 lib/librte_eal/common/include/rte_lcore.h          |    2 +
 lib/librte_eal/common/include/rte_random.h         |    6 ++-
 lib/librte_eal/common/include/rte_string_fns.h     |    7 +---
 lib/librte_ethdev/rte_ethdev.h                     |   30 ++++++++++-------
 lib/librte_ethdev/rte_ethdev_core.h                |    4 +-
 lib/librte_hash/rte_hash_crc.h                     |   11 +++---
 lib/librte_mbuf/rte_mbuf.h                         |   36 +++++++++++---------
 lib/librte_net/rte_ether.h                         |    5 ++-
 lib/librte_ring/rte_ring.h                         |    4 +-
 lib/librte_ring/rte_ring_c11_mem.h                 |    2 +
 lib/librte_ring/rte_ring_generic.h                 |   10 ++----
 test/test/test_table_pipeline.c                    |    4 +-
 40 files changed, 157 insertions(+), 121 deletions(-)

--
Signature

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 01/24] lib/librte_eal: import libbsd strlcpy
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
@ 2018-05-11  1:58 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 02/24] lib/librte_ethdev: change eth-dev-ops API to return int Andy Green
                   ` (23 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:58 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_eal/common/eal_common_string_fns.c  |   34 ++++++++++++++++++++++++
 lib/librte_eal/common/include/rte_string_fns.h |    7 +----
 2 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_string_fns.c b/lib/librte_eal/common/eal_common_string_fns.c
index 6ac5f8289..275f6fd03 100644
--- a/lib/librte_eal/common/eal_common_string_fns.c
+++ b/lib/librte_eal/common/eal_common_string_fns.c
@@ -38,3 +38,37 @@ rte_strsplit(char *string, int stringlen,
 	errno = EINVAL;
 	return -1;
 }
+
+/*
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ */
+
+size_t
+rte_strlcpy(char *dst, const char *src, size_t siz)
+{
+	char *d = dst;
+	const char *s = src;
+	size_t n = siz;
+
+	/* Copy as many bytes as will fit */
+	if (n != 0) {
+		while (--n != 0) {
+			if ((*d++ = *s++) == '\0')
+				break;
+		}
+	}
+
+	/* Not enough room in dst, add NUL and traverse rest of src */
+	if (n == 0) {
+		if (siz != 0)
+			*d = '\0';		/* NUL-terminate dst */
+		while (*s++)
+			;
+	}
+
+	return(s - src - 1);	/* count does not include NUL */
+}
diff --git a/lib/librte_eal/common/include/rte_string_fns.h b/lib/librte_eal/common/include/rte_string_fns.h
index fcbb42e00..d4389bcf4 100644
--- a/lib/librte_eal/common/include/rte_string_fns.h
+++ b/lib/librte_eal/common/include/rte_string_fns.h
@@ -52,11 +52,8 @@ rte_strsplit(char *string, int stringlen,
  * DPDK-specific version of strlcpy for systems without
  * libc or libbsd copies of the function
  */
-static inline size_t
-rte_strlcpy(char *dst, const char *src, size_t size)
-{
-	return snprintf(dst, size, "%s", src);
-}
+size_t
+rte_strlcpy(char *dst, const char *src, size_t size);
 
 /* pull in a strlcpy function */
 #ifdef RTE_EXEC_ENV_BSDAPP

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 02/24] lib/librte_ethdev: change eth-dev-ops API to return int
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
  2018-05-11  1:58 ` [dpdk-dev] [PATCH v2 01/24] lib/librte_eal: import libbsd strlcpy Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 03/24] rte_common.h: cast gcc builtin result to avoid complaints Andy Green
                   ` (22 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 drivers/net/ark/ark_ethdev_rx.c     |    4 ++--
 drivers/net/ark/ark_ethdev_rx.h     |    3 +--
 drivers/net/avf/avf_rxtx.c          |    4 ++--
 drivers/net/avf/avf_rxtx.h          |    2 +-
 drivers/net/bnxt/bnxt_ethdev.c      |    5 +++--
 drivers/net/dpaa/dpaa_ethdev.c      |    4 ++--
 drivers/net/dpaa2/dpaa2_ethdev.c    |    6 +++---
 drivers/net/e1000/e1000_ethdev.h    |    6 ++----
 drivers/net/e1000/em_rxtx.c         |    4 ++--
 drivers/net/e1000/igb_rxtx.c        |    4 ++--
 drivers/net/enic/enic_ethdev.c      |    9 +++------
 drivers/net/i40e/i40e_rxtx.c        |    4 ++--
 drivers/net/i40e/i40e_rxtx.h        |    3 +--
 drivers/net/ixgbe/ixgbe_ethdev.h    |    3 +--
 drivers/net/ixgbe/ixgbe_rxtx.c      |    4 ++--
 drivers/net/nfp/nfp_net.c           |    9 ++++-----
 drivers/net/sfc/sfc_ethdev.c        |    4 ++--
 drivers/net/thunderx/nicvf_ethdev.c |    2 +-
 drivers/net/thunderx/nicvf_rxtx.c   |    4 ++--
 drivers/net/thunderx/nicvf_rxtx.h   |    2 +-
 drivers/net/vhost/rte_eth_vhost.c   |    4 ++--
 examples/l3fwd-power/main.c         |    2 +-
 lib/librte_ethdev/rte_ethdev_core.h |    4 ++--
 23 files changed, 44 insertions(+), 52 deletions(-)

diff --git a/drivers/net/ark/ark_ethdev_rx.c b/drivers/net/ark/ark_ethdev_rx.c
index 987d085e2..7f0a6fc52 100644
--- a/drivers/net/ark/ark_ethdev_rx.c
+++ b/drivers/net/ark/ark_ethdev_rx.c
@@ -407,13 +407,13 @@ eth_ark_rx_queue_drain(struct ark_rx_queue *queue)
 	}
 }
 
-uint32_t
+int
 eth_ark_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 	struct ark_rx_queue *queue;
 
 	queue = dev->data->rx_queues[queue_id];
-	return (queue->prod_index - queue->cons_index);	/* mod arith */
+	return (int)(queue->prod_index - queue->cons_index);	/* mod arith */
 }
 
 /* ************************************************************************* */
diff --git a/drivers/net/ark/ark_ethdev_rx.h b/drivers/net/ark/ark_ethdev_rx.h
index 146787112..c3f56be3b 100644
--- a/drivers/net/ark/ark_ethdev_rx.h
+++ b/drivers/net/ark/ark_ethdev_rx.h
@@ -47,8 +47,7 @@ int eth_ark_dev_rx_queue_setup(struct rte_eth_dev *dev,
 			       unsigned int socket_id,
 			       const struct rte_eth_rxconf *rx_conf,
 			       struct rte_mempool *mp);
-uint32_t eth_ark_dev_rx_queue_count(struct rte_eth_dev *dev,
-				    uint16_t rx_queue_id);
+int eth_ark_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id);
 int eth_ark_rx_stop_queue(struct rte_eth_dev *dev, uint16_t queue_id);
 int eth_ark_rx_start_queue(struct rte_eth_dev *dev, uint16_t queue_id);
 uint16_t eth_ark_recv_pkts_noop(void *rx_queue, struct rte_mbuf **rx_pkts,
diff --git a/drivers/net/avf/avf_rxtx.c b/drivers/net/avf/avf_rxtx.c
index 1824ed70b..b4f7cea0b 100644
--- a/drivers/net/avf/avf_rxtx.c
+++ b/drivers/net/avf/avf_rxtx.c
@@ -1836,13 +1836,13 @@ avf_dev_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
 }
 
 /* Get the number of used descriptors of a rx queue */
-uint32_t
+int
 avf_dev_rxq_count(struct rte_eth_dev *dev, uint16_t queue_id)
 {
 #define AVF_RXQ_SCAN_INTERVAL 4
 	volatile union avf_rx_desc *rxdp;
 	struct avf_rx_queue *rxq;
-	uint16_t desc = 0;
+	int desc = 0;
 
 	rxq = dev->data->rx_queues[queue_id];
 	rxdp = &rxq->rx_ring[rxq->rx_tail];
diff --git a/drivers/net/avf/avf_rxtx.h b/drivers/net/avf/avf_rxtx.h
index 297d0776d..fa287a003 100644
--- a/drivers/net/avf/avf_rxtx.h
+++ b/drivers/net/avf/avf_rxtx.h
@@ -185,7 +185,7 @@ void avf_dev_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
 			  struct rte_eth_rxq_info *qinfo);
 void avf_dev_txq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
 			  struct rte_eth_txq_info *qinfo);
-uint32_t avf_dev_rxq_count(struct rte_eth_dev *dev, uint16_t queue_id);
+int avf_dev_rxq_count(struct rte_eth_dev *dev, uint16_t queue_id);
 int avf_dev_rx_desc_status(void *rx_queue, uint16_t offset);
 int avf_dev_tx_desc_status(void *tx_queue, uint16_t offset);
 
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 348129dad..3e0201fb8 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -1619,15 +1619,16 @@ bnxt_dev_led_off_op(struct rte_eth_dev *dev)
 	return bnxt_hwrm_port_led_cfg(bp, false);
 }
 
-static uint32_t
+static int
 bnxt_rx_queue_count_op(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
-	uint32_t desc = 0, raw_cons = 0, cons;
 	struct bnxt_cp_ring_info *cpr;
+	uint32_t raw_cons = 0, cons;
 	struct bnxt_rx_queue *rxq;
 	struct rx_pkt_cmpl *rxcmp;
 	uint16_t cmp_type;
 	uint8_t cmp = 1;
+	int desc = 0;
 	bool valid;
 
 	rxq = dev->data->rx_queues[rx_queue_id];
diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 6bf8c1590..615eb66f2 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -738,7 +738,7 @@ static void dpaa_eth_tx_queue_release(void *txq __rte_unused)
 	PMD_INIT_FUNC_TRACE();
 }
 
-static uint32_t
+static int
 dpaa_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 	struct dpaa_if *dpaa_intf = dev->data->dev_private;
@@ -751,7 +751,7 @@ dpaa_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 		RTE_LOG(DEBUG, PMD, "RX frame count for q(%d) is %u\n",
 			rx_queue_id, frm_cnt);
 	}
-	return frm_cnt;
+	return (int)frm_cnt;
 }
 
 static int dpaa_link_down(struct rte_eth_dev *dev)
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index c304b82bd..32f8daec3 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -620,7 +620,7 @@ dpaa2_dev_tx_queue_release(void *q __rte_unused)
 	PMD_INIT_FUNC_TRACE();
 }
 
-static uint32_t
+static int
 dpaa2_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 	int32_t ret;
@@ -628,7 +628,7 @@ dpaa2_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 	struct dpaa2_queue *dpaa2_q;
 	struct qbman_swp *swp;
 	struct qbman_fq_query_np_rslt state;
-	uint32_t frame_cnt = 0;
+	int frame_cnt = 0;
 
 	PMD_INIT_FUNC_TRACE();
 
@@ -644,7 +644,7 @@ dpaa2_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 	dpaa2_q = (struct dpaa2_queue *)priv->rx_vq[rx_queue_id];
 
 	if (qbman_fq_query_state(swp, dpaa2_q->fqid, &state) == 0) {
-		frame_cnt = qbman_fq_state_frame_count(&state);
+		frame_cnt = (int)qbman_fq_state_frame_count(&state);
 		DPAA2_PMD_DEBUG("RX frame count for q(%d) is %u",
 				rx_queue_id, frame_cnt);
 	}
diff --git a/drivers/net/e1000/e1000_ethdev.h b/drivers/net/e1000/e1000_ethdev.h
index 902001f36..aeaa90048 100644
--- a/drivers/net/e1000/e1000_ethdev.h
+++ b/drivers/net/e1000/e1000_ethdev.h
@@ -370,8 +370,7 @@ int eth_igb_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
 		const struct rte_eth_rxconf *rx_conf,
 		struct rte_mempool *mb_pool);
 
-uint32_t eth_igb_rx_queue_count(struct rte_eth_dev *dev,
-		uint16_t rx_queue_id);
+int eth_igb_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id);
 
 int eth_igb_rx_descriptor_done(void *rx_queue, uint16_t offset);
 
@@ -447,8 +446,7 @@ int eth_em_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id,
 		const struct rte_eth_rxconf *rx_conf,
 		struct rte_mempool *mb_pool);
 
-uint32_t eth_em_rx_queue_count(struct rte_eth_dev *dev,
-		uint16_t rx_queue_id);
+int eth_em_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id);
 
 int eth_em_rx_descriptor_done(void *rx_queue, uint16_t offset);
 
diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
index 2b3c63e1c..16b0f49ca 100644
--- a/drivers/net/e1000/em_rxtx.c
+++ b/drivers/net/e1000/em_rxtx.c
@@ -1528,7 +1528,7 @@ eth_em_rx_queue_setup(struct rte_eth_dev *dev,
 	return 0;
 }
 
-uint32_t
+int
 eth_em_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 #define EM_RXQ_SCAN_INTERVAL 4
@@ -1548,7 +1548,7 @@ eth_em_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 				desc - rxq->nb_rx_desc]);
 	}
 
-	return desc;
+	return (int)desc;
 }
 
 int
diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index a3776a0d7..246bebd41 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -1808,7 +1808,7 @@ eth_igb_rx_queue_setup(struct rte_eth_dev *dev,
 	return 0;
 }
 
-uint32_t
+int
 eth_igb_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 #define IGB_RXQ_SCAN_INTERVAL 4
@@ -1828,7 +1828,7 @@ eth_igb_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 				desc - rxq->nb_rx_desc]);
 	}
 
-	return desc;
+	return (int)desc;
 }
 
 int
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
index 286308924..14dbe9f91 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
@@ -269,11 +269,10 @@ static void enicpmd_dev_rx_queue_release(void *rxq)
 	enic_free_rq(rxq);
 }
 
-static uint32_t enicpmd_dev_rx_queue_count(struct rte_eth_dev *dev,
-					   uint16_t rx_queue_id)
+static int enicpmd_dev_rx_queue_count(struct rte_eth_dev *dev,
+				      uint16_t rx_queue_id)
 {
 	struct enic *enic = pmd_priv(dev);
-	uint32_t queue_count = 0;
 	struct vnic_cq *cq;
 	uint32_t cq_tail;
 	uint16_t cq_idx;
@@ -288,9 +287,7 @@ static uint32_t enicpmd_dev_rx_queue_count(struct rte_eth_dev *dev,
 	if (cq_tail < cq_idx)
 		cq_tail += cq->ring.desc_count;
 
-	queue_count = cq_tail - cq_idx;
-
-	return queue_count;
+	return (int)(cq_tail - cq_idx);
 }
 
 static int enicpmd_dev_rx_queue_setup(struct rte_eth_dev *eth_dev,
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 62985c3a9..3187bfb06 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -1961,7 +1961,7 @@ i40e_dev_rx_queue_release(void *rxq)
 	rte_free(q);
 }
 
-uint32_t
+int
 i40e_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 #define I40E_RXQ_SCAN_INTERVAL 4
@@ -1987,7 +1987,7 @@ i40e_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 					desc - rxq->nb_rx_desc]);
 	}
 
-	return desc;
+	return (int)desc;
 }
 
 int
diff --git a/drivers/net/i40e/i40e_rxtx.h b/drivers/net/i40e/i40e_rxtx.h
index ea73a8a1b..669377099 100644
--- a/drivers/net/i40e/i40e_rxtx.h
+++ b/drivers/net/i40e/i40e_rxtx.h
@@ -205,8 +205,7 @@ void i40e_tx_queue_release_mbufs(struct i40e_tx_queue *txq);
 int i40e_alloc_rx_queue_mbufs(struct i40e_rx_queue *rxq);
 void i40e_rx_queue_release_mbufs(struct i40e_rx_queue *rxq);
 
-uint32_t i40e_dev_rx_queue_count(struct rte_eth_dev *dev,
-				 uint16_t rx_queue_id);
+int i40e_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id);
 int i40e_dev_rx_descriptor_done(void *rx_queue, uint16_t offset);
 int i40e_dev_rx_descriptor_status(void *rx_queue, uint16_t offset);
 int i40e_dev_tx_descriptor_status(void *tx_queue, uint16_t offset);
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
index cc512d602..e05c21507 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.h
+++ b/drivers/net/ixgbe/ixgbe_ethdev.h
@@ -566,8 +566,7 @@ int  ixgbe_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 		uint16_t nb_tx_desc, unsigned int socket_id,
 		const struct rte_eth_txconf *tx_conf);
 
-uint32_t ixgbe_dev_rx_queue_count(struct rte_eth_dev *dev,
-		uint16_t rx_queue_id);
+int ixgbe_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id);
 
 int ixgbe_dev_rx_descriptor_done(void *rx_queue, uint16_t offset);
 
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 2892436e9..7985a8971 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -3118,7 +3118,7 @@ ixgbe_dev_rx_queue_setup(struct rte_eth_dev *dev,
 	return 0;
 }
 
-uint32_t
+int
 ixgbe_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 #define IXGBE_RXQ_SCAN_INTERVAL 4
@@ -3139,7 +3139,7 @@ ixgbe_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 				desc - rxq->nb_rx_desc]);
 	}
 
-	return desc;
+	return (int)desc;
 }
 
 int
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index f114b1839..65f81dd8e 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -79,8 +79,7 @@ static int nfp_net_link_update(struct rte_eth_dev *dev, int wait_to_complete);
 static void nfp_net_promisc_enable(struct rte_eth_dev *dev);
 static void nfp_net_promisc_disable(struct rte_eth_dev *dev);
 static int nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq);
-static uint32_t nfp_net_rx_queue_count(struct rte_eth_dev *dev,
-				       uint16_t queue_idx);
+static int nfp_net_rx_queue_count(struct rte_eth_dev *dev, uint16_t queue_idx);
 static uint16_t nfp_net_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
 				  uint16_t nb_pkts);
 static void nfp_net_rx_queue_release(void *rxq);
@@ -1371,13 +1370,13 @@ nfp_net_supported_ptypes_get(struct rte_eth_dev *dev)
 	return NULL;
 }
 
-static uint32_t
+static int
 nfp_net_rx_queue_count(struct rte_eth_dev *dev, uint16_t queue_idx)
 {
 	struct nfp_net_rxq *rxq;
 	struct nfp_net_rx_desc *rxds;
 	uint32_t idx;
-	uint32_t count;
+	int count;
 
 	rxq = (struct nfp_net_rxq *)dev->data->rx_queues[queue_idx];
 
@@ -1402,7 +1401,7 @@ nfp_net_rx_queue_count(struct rte_eth_dev *dev, uint16_t queue_idx)
 		idx++;
 
 		/* Wrapping? */
-		if ((idx) == rxq->rx_count)
+		if (idx == rxq->rx_count)
 			idx = 0;
 	}
 
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index a8c0f8e19..ca5d0a916 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -1113,14 +1113,14 @@ sfc_tx_queue_info_get(struct rte_eth_dev *dev, uint16_t tx_queue_id,
 	sfc_adapter_unlock(sa);
 }
 
-static uint32_t
+static int
 sfc_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 	struct sfc_adapter *sa = dev->data->dev_private;
 
 	sfc_log_init(sa, "RxQ=%u", rx_queue_id);
 
-	return sfc_rx_qdesc_npending(sa, rx_queue_id);
+	return (int)sfc_rx_qdesc_npending(sa, rx_queue_id);
 }
 
 static int
diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c
index b673b4716..56c1d06c5 100644
--- a/drivers/net/thunderx/nicvf_ethdev.c
+++ b/drivers/net/thunderx/nicvf_ethdev.c
@@ -1054,7 +1054,7 @@ nicvf_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx,
 static inline void
 nicvf_rx_queue_release_mbufs(struct rte_eth_dev *dev, struct nicvf_rxq *rxq)
 {
-	uint32_t rxq_cnt;
+	int rxq_cnt;
 	uint32_t nb_pkts, released_pkts = 0;
 	uint32_t refill_cnt = 0;
 	struct rte_mbuf *rx_pkts[NICVF_MAX_RX_FREE_THRESH];
diff --git a/drivers/net/thunderx/nicvf_rxtx.c b/drivers/net/thunderx/nicvf_rxtx.c
index 72305d9d2..133b8ba27 100644
--- a/drivers/net/thunderx/nicvf_rxtx.c
+++ b/drivers/net/thunderx/nicvf_rxtx.c
@@ -535,13 +535,13 @@ nicvf_recv_pkts_multiseg(void *rx_queue, struct rte_mbuf **rx_pkts,
 	return to_process;
 }
 
-uint32_t
+int
 nicvf_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t queue_idx)
 {
 	struct nicvf_rxq *rxq;
 
 	rxq = dev->data->rx_queues[queue_idx];
-	return nicvf_addr_read(rxq->cq_status) & NICVF_CQ_CQE_COUNT_MASK;
+	return (int)(nicvf_addr_read(rxq->cq_status) & NICVF_CQ_CQE_COUNT_MASK);
 }
 
 uint32_t
diff --git a/drivers/net/thunderx/nicvf_rxtx.h b/drivers/net/thunderx/nicvf_rxtx.h
index 8bdd582ed..792beb85a 100644
--- a/drivers/net/thunderx/nicvf_rxtx.h
+++ b/drivers/net/thunderx/nicvf_rxtx.h
@@ -83,7 +83,7 @@ nicvf_mbuff_init_mseg_update(struct rte_mbuf *pkt, const uint64_t mbuf_init,
 	*(uint64_t *)(&pkt->rearm_data) = init.value;
 }
 
-uint32_t nicvf_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t queue_idx);
+int nicvf_dev_rx_queue_count(struct rte_eth_dev *dev, uint16_t queue_idx);
 uint32_t nicvf_dev_rbdr_refill(struct rte_eth_dev *dev, uint16_t queue_idx);
 
 uint16_t nicvf_recv_pkts(void *rxq, struct rte_mbuf **rx_pkts, uint16_t pkts);
diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
index ff5424a92..4c8d844ed 100644
--- a/drivers/net/vhost/rte_eth_vhost.c
+++ b/drivers/net/vhost/rte_eth_vhost.c
@@ -1163,7 +1163,7 @@ eth_link_update(struct rte_eth_dev *dev __rte_unused,
 	return 0;
 }
 
-static uint32_t
+static int
 eth_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 {
 	struct vhost_queue *vq;
@@ -1172,7 +1172,7 @@ eth_rx_queue_count(struct rte_eth_dev *dev, uint16_t rx_queue_id)
 	if (vq == NULL)
 		return 0;
 
-	return rte_vhost_rx_queue_count(vq->vid, vq->virtqueue_id);
+	return (int)rte_vhost_rx_queue_count(vq->vid, vq->virtqueue_id);
 }
 
 static const struct eth_dev_ops ops = {
diff --git a/examples/l3fwd-power/main.c b/examples/l3fwd-power/main.c
index 596d64548..22dd7006f 100644
--- a/examples/l3fwd-power/main.c
+++ b/examples/l3fwd-power/main.c
@@ -722,7 +722,7 @@ power_freq_scaleup_heuristic(unsigned lcore_id,
 			     uint16_t port_id,
 			     uint16_t queue_id)
 {
-	uint32_t rxq_count = rte_eth_rx_queue_count(port_id, queue_id);
+	int rxq_count = rte_eth_rx_queue_count(port_id, queue_id);
 /**
  * HW Rx queue size is 128 by default, Rx burst read at maximum 32 entries
  * per iteration
diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h
index 33d12b3a2..5e77555d3 100644
--- a/lib/librte_ethdev/rte_ethdev_core.h
+++ b/lib/librte_ethdev/rte_ethdev_core.h
@@ -144,8 +144,8 @@ typedef int (*eth_rx_disable_intr_t)(struct rte_eth_dev *dev,
 typedef void (*eth_queue_release_t)(void *queue);
 /**< @internal Release memory resources allocated by given RX/TX queue. */
 
-typedef uint32_t (*eth_rx_queue_count_t)(struct rte_eth_dev *dev,
-					 uint16_t rx_queue_id);
+typedef int (*eth_rx_queue_count_t)(struct rte_eth_dev *dev,
+				    uint16_t rx_queue_id);
 /**< @internal Get number of used descriptors on a receive queue. */
 
 typedef int (*eth_rx_descriptor_done_t)(void *rxq, uint16_t offset);

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 03/24] rte_common.h: cast gcc builtin result to avoid complaints
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
  2018-05-11  1:58 ` [dpdk-dev] [PATCH v2 01/24] lib/librte_eal: import libbsd strlcpy Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 02/24] lib/librte_ethdev: change eth-dev-ops API to return int Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 04/24] lib/librte_eal: explicit tmp cast Andy Green
                   ` (21 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_common.h:416:9:
warning: conversion to 'uint32_t' {aka 'unsigned int'} from
'int' may change the sign of the result [-Wsign-conversion]
  return __builtin_ctz(v);
         ^~~~~~~~~~~~~~~~

The builtin is defined to return int, but we want to
return it as uint32_t.  Its only defined valid return
values are positive integers or zero, which is OK for
uint32_t.  So just add an explicit cast.

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_eal/common/include/rte_common.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
index 69e5ed1e3..679f2f184 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
@@ -413,7 +413,7 @@ rte_align64prevpow2(uint64_t v)
 static inline uint32_t
 rte_bsf32(uint32_t v)
 {
-	return __builtin_ctz(v);
+	return (uint32_t)__builtin_ctz(v);
 }
 
 /**

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 04/24] lib/librte_eal: explicit tmp cast
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (2 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 03/24] rte_common.h: cast gcc builtin result to avoid complaints Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 05/24] lib/librte_eal: explicit cast for signed change Andy Green
                   ` (20 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 .../common/include/arch/x86/rte_memcpy.h           |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
index 5ead68ab2..f9ea0ab69 100644
--- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
+++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h
@@ -597,9 +597,9 @@ __extension__ ({
         _mm_storeu_si128((__m128i *)((uint8_t *)dst + 7 * 16), _mm_alignr_epi8(xmm8, xmm7, offset));        \
         dst = (uint8_t *)dst + 128;                                                                         \
     }                                                                                                       \
-    tmp = len;                                                                                              \
+    tmp = (int)len;                                                                                         \
     len = ((len - 16 + offset) & 127) + 16 - offset;                                                        \
-    tmp -= len;                                                                                             \
+    tmp -= (int)len;                                                                                        \
     src = (const uint8_t *)src + tmp;                                                                       \
     dst = (uint8_t *)dst + tmp;                                                                             \
     if (len >= 32 + 16 - offset) {                                                                          \
@@ -613,9 +613,9 @@ __extension__ ({
             _mm_storeu_si128((__m128i *)((uint8_t *)dst + 1 * 16), _mm_alignr_epi8(xmm2, xmm1, offset));    \
             dst = (uint8_t *)dst + 32;                                                                      \
         }                                                                                                   \
-        tmp = len;                                                                                          \
+        tmp = (int)len;                                                                                     \
         len = ((len - 16 + offset) & 31) + 16 - offset;                                                     \
-        tmp -= len;                                                                                         \
+        tmp -= (int)len;                                                                                    \
         src = (const uint8_t *)src + tmp;                                                                   \
         dst = (uint8_t *)dst + tmp;                                                                         \
     }                                                                                                       \

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 05/24] lib/librte_eal: explicit cast for signed change
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (3 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 04/24] lib/librte_eal: explicit tmp cast Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 06/24] /lib/librte_eal: stage cast from uint64 to long Andy Green
                   ` (19 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_lcore.h:
In function 'rte_lcore_index':
/projects/lagopus/src/dpdk/build/include/rte_lcore.h:122:14:
warning: conversion to 'int' from 'unsigned int' may change
the sign of the result [-Wsign-conversion]
   lcore_id = rte_lcore_id();

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_eal/common/include/rte_lcore.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/common/include/rte_lcore.h
index 1a2f37eaa..6e09d9181 100644
--- a/lib/librte_eal/common/include/rte_lcore.h
+++ b/lib/librte_eal/common/include/rte_lcore.h
@@ -119,7 +119,7 @@ rte_lcore_index(int lcore_id)
 	if (lcore_id >= RTE_MAX_LCORE)
 		return -1;
 	if (lcore_id < 0)
-		lcore_id = rte_lcore_id();
+		lcore_id = (int)rte_lcore_id();
 	return lcore_config[lcore_id].core_index;
 }
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 06/24] /lib/librte_eal: stage cast from uint64 to long
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (4 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 05/24] lib/librte_eal: explicit cast for signed change Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 07/24] rte_spinlock.h: stack declarations before code Andy Green
                   ` (18 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_random.h:
In function 'rte_srand':
/projects/lagopus/src/dpdk/build/include/rte_random.h:34:10:
warning: conversion to 'long int' from 'long unsigned int'
may change the sign of the result [-Wsign-conversion]
  srand48((long unsigned int)seedval);

/projects/lagopus/src/dpdk/build/include/rte_random.h:51:8:
warning: conversion to 'uint64_t' {aka 'long unsigned int'}
from 'long int' may change the sign of the result
[-Wsign-conversion]
  val = lrand48();
        ^~~~~~~
/projects/lagopus/src/dpdk/build/include/rte_random.h:53:6:
warning: conversion to 'long unsigned int' from 'long int'
may change the sign of the result [-Wsign-conversion]
  val += lrand48();

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_eal/common/include/rte_random.h |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/librte_eal/common/include/rte_random.h b/lib/librte_eal/common/include/rte_random.h
index 63bb28088..96c64fdd2 100644
--- a/lib/librte_eal/common/include/rte_random.h
+++ b/lib/librte_eal/common/include/rte_random.h
@@ -31,7 +31,7 @@ extern "C" {
 static inline void
 rte_srand(uint64_t seedval)
 {
-	srand48((long unsigned int)seedval);
+	srand48((long)(unsigned long)seedval);
 }
 
 /**
@@ -48,9 +48,9 @@ static inline uint64_t
 rte_rand(void)
 {
 	uint64_t val;
-	val = lrand48();
+	val = (unsigned long)lrand48();
 	val <<= 32;
-	val += lrand48();
+	val += (unsigned long)lrand48();
 	return val;
 }
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 07/24] rte_spinlock.h: stack declarations before code
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (5 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 06/24] /lib/librte_eal: stage cast from uint64 to long Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 08/24] rte_ring_generic.h: " Andy Green
                   ` (17 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_spinlock.h:
In function 'rte_try_tm':
/projects/lagopus/src/dpdk/build/include/rte_spinlock.h:82:2:
warning: ISO C90 forbids mixed declarations and code
[-Wdeclaration-after-statement]
  int retries = RTE_RTM_MAX_RETRIES;

Signed-off-by: Andy Green <andy@warmcat.com>
---
 .../common/include/arch/x86/rte_spinlock.h         |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/arch/x86/rte_spinlock.h b/lib/librte_eal/common/include/arch/x86/rte_spinlock.h
index 4b16887ea..60321da02 100644
--- a/lib/librte_eal/common/include/arch/x86/rte_spinlock.h
+++ b/lib/librte_eal/common/include/arch/x86/rte_spinlock.h
@@ -76,10 +76,12 @@ static inline int rte_tm_supported(void)
 static inline int
 rte_try_tm(volatile int *lock)
 {
+	int retries;
+
 	if (!rte_rtm_supported)
 		return 0;
 
-	int retries = RTE_RTM_MAX_RETRIES;
+	retries = RTE_RTM_MAX_RETRIES;
 
 	while (likely(retries--)) {
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 08/24] rte_ring_generic.h: stack declarations before code
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (6 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 07/24] rte_spinlock.h: stack declarations before code Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 09/24] rte_ring.h: remove signed type flipflopping Andy Green
                   ` (16 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:
In function '__rte_ring_move_prod_head':
/projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:76:3:
warning: ISO C90 forbids mixed declarations and code
[-Wdeclaration-after-statement]
   const uint32_t cons_tail = r->cons.tail;
   ^~~~~
/projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:
In function '__rte_ring_move_cons_head':
/projects/lagopus/src/dpdk/build/include/rte_ring_generic.h:147:3:
warning: ISO C90 forbids mixed declarations and code
[-Wdeclaration-after-statement]
   const uint32_t prod_tail = r->prod.tail;

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_ring/rte_ring_generic.h |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/lib/librte_ring/rte_ring_generic.h b/lib/librte_ring/rte_ring_generic.h
index 5b110425f..c2d482bc9 100644
--- a/lib/librte_ring/rte_ring_generic.h
+++ b/lib/librte_ring/rte_ring_generic.h
@@ -73,14 +73,13 @@ __rte_ring_move_prod_head(struct rte_ring *r, int is_sp,
 		 */
 		rte_smp_rmb();
 
-		const uint32_t cons_tail = r->cons.tail;
 		/*
 		 *  The subtraction is done between two unsigned 32bits value
 		 * (the result is always modulo 32 bits even if we have
 		 * *old_head > cons_tail). So 'free_entries' is always between 0
 		 * and capacity (which is < size).
 		 */
-		*free_entries = (capacity + cons_tail - *old_head);
+		*free_entries = (capacity + r->cons.tail - *old_head);
 
 		/* check that we have enough room in ring */
 		if (unlikely(n > *free_entries))
@@ -144,13 +143,12 @@ __rte_ring_move_cons_head(struct rte_ring *r, int is_sc,
 		 */
 		rte_smp_rmb();
 
-		const uint32_t prod_tail = r->prod.tail;
 		/* The subtraction is done between two unsigned 32bits value
 		 * (the result is always modulo 32 bits even if we have
 		 * cons_head > prod_tail). So 'entries' is always between 0
 		 * and size(ring)-1.
 		 */
-		*entries = (prod_tail - *old_head);
+		*entries = (r->prod.tail - *old_head);
 
 		/* Set the actual entries for dequeue */
 		if (n > *entries)

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 09/24] rte_ring.h: remove signed type flipflopping
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (7 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 08/24] rte_ring_generic.h: " Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 10/24] rte_dev.h: stack declaration at top of own basic block Andy Green
                   ` (15 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_ring.h:350:46:
warning: conversion to 'uint32_t' {aka 'unsigned int'}
from 'int' may change the sign of the result
[-Wsign-conversion]
  update_tail(&r->prod, prod_head, prod_next, is_sp, 1);

The visible apis take unsigned int, then call a private
api taking an int, which finally calls an api taking an
unsigned int.

Convert the private api to take unsigned int removing
5 x warning similar to that shown above.

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_ring/rte_ring.h         |    4 ++--
 lib/librte_ring/rte_ring_c11_mem.h |    2 +-
 lib/librte_ring/rte_ring_generic.h |    4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_ring/rte_ring.h
index d3d3f7f97..124582251 100644
--- a/lib/librte_ring/rte_ring.h
+++ b/lib/librte_ring/rte_ring.h
@@ -335,7 +335,7 @@ void rte_ring_dump(FILE *f, const struct rte_ring *r);
 static __rte_always_inline unsigned int
 __rte_ring_do_enqueue(struct rte_ring *r, void * const *obj_table,
 		 unsigned int n, enum rte_ring_queue_behavior behavior,
-		 int is_sp, unsigned int *free_space)
+		 unsigned int is_sp, unsigned int *free_space)
 {
 	uint32_t prod_head, prod_next;
 	uint32_t free_entries;
@@ -377,7 +377,7 @@ __rte_ring_do_enqueue(struct rte_ring *r, void * const *obj_table,
 static __rte_always_inline unsigned int
 __rte_ring_do_dequeue(struct rte_ring *r, void **obj_table,
 		 unsigned int n, enum rte_ring_queue_behavior behavior,
-		 int is_sc, unsigned int *available)
+		 unsigned int is_sc, unsigned int *available)
 {
 	uint32_t cons_head, cons_next;
 	uint32_t entries;
diff --git a/lib/librte_ring/rte_ring_c11_mem.h b/lib/librte_ring/rte_ring_c11_mem.h
index 08825ea5b..cb3f82b1a 100644
--- a/lib/librte_ring/rte_ring_c11_mem.h
+++ b/lib/librte_ring/rte_ring_c11_mem.h
@@ -51,7 +51,7 @@ update_tail(struct rte_ring_headtail *ht, uint32_t old_val, uint32_t new_val,
  *   If behavior == RTE_RING_QUEUE_FIXED, this will be 0 or n only.
  */
 static __rte_always_inline unsigned int
-__rte_ring_move_prod_head(struct rte_ring *r, int is_sp,
+__rte_ring_move_prod_head(struct rte_ring *r, unsigned int is_sp,
 		unsigned int n, enum rte_ring_queue_behavior behavior,
 		uint32_t *old_head, uint32_t *new_head,
 		uint32_t *free_entries)
diff --git a/lib/librte_ring/rte_ring_generic.h b/lib/librte_ring/rte_ring_generic.h
index c2d482bc9..ea7dbe5b9 100644
--- a/lib/librte_ring/rte_ring_generic.h
+++ b/lib/librte_ring/rte_ring_generic.h
@@ -53,7 +53,7 @@ update_tail(struct rte_ring_headtail *ht, uint32_t old_val, uint32_t new_val,
  *   If behavior == RTE_RING_QUEUE_FIXED, this will be 0 or n only.
  */
 static __rte_always_inline unsigned int
-__rte_ring_move_prod_head(struct rte_ring *r, int is_sp,
+__rte_ring_move_prod_head(struct rte_ring *r, unsigned int is_sp,
 		unsigned int n, enum rte_ring_queue_behavior behavior,
 		uint32_t *old_head, uint32_t *new_head,
 		uint32_t *free_entries)
@@ -123,7 +123,7 @@ __rte_ring_move_prod_head(struct rte_ring *r, int is_sp,
  *     If behavior == RTE_RING_QUEUE_FIXED, this will be 0 or n only.
  */
 static __rte_always_inline unsigned int
-__rte_ring_move_cons_head(struct rte_ring *r, int is_sc,
+__rte_ring_move_cons_head(struct rte_ring *r, unsigned int is_sc,
 		unsigned int n, enum rte_ring_queue_behavior behavior,
 		uint32_t *old_head, uint32_t *new_head,
 		uint32_t *entries)

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 10/24] rte_dev.h: stack declaration at top of own basic block
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (8 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 09/24] rte_ring.h: remove signed type flipflopping Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 11/24] rte_mbuf.h: avoid warnings from inadvertant promotion Andy Green
                   ` (14 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_dev.h:54:2:
warning: ISO C90 forbids mixed declarations and
code [-Wdeclaration-after-statement]
  char buffer[vsnprintf(NULL, 0, fmt, ap) + 1];

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_eal/common/include/rte_dev.h |   15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/lib/librte_eal/common/include/rte_dev.h b/lib/librte_eal/common/include/rte_dev.h
index 0955e9adb..3879ff3ca 100644
--- a/lib/librte_eal/common/include/rte_dev.h
+++ b/lib/librte_eal/common/include/rte_dev.h
@@ -51,15 +51,18 @@ rte_pmd_debug_trace(const char *func_name, const char *fmt, ...)
 
 	va_start(ap, fmt);
 
-	char buffer[vsnprintf(NULL, 0, fmt, ap) + 1];
+	{
+		char buffer[vsnprintf(NULL, 0, fmt, ap) + 1];
 
-	va_end(ap);
+		va_end(ap);
 
-	va_start(ap, fmt);
-	vsnprintf(buffer, sizeof(buffer), fmt, ap);
-	va_end(ap);
+		va_start(ap, fmt);
+		vsnprintf(buffer, sizeof(buffer), fmt, ap);
+		va_end(ap);
 
-	rte_log(RTE_LOG_ERR, RTE_LOGTYPE_PMD, "%s: %s", func_name, buffer);
+		rte_log(RTE_LOG_ERR, RTE_LOGTYPE_PMD, "%s: %s",
+			func_name, buffer);
+	}
 }
 
 /*

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 11/24] rte_mbuf.h: avoid warnings from inadvertant promotion
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (9 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 10/24] rte_dev.h: stack declaration at top of own basic block Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 12/24] rte_mbuf.h: explicit casts for int16 to uint16 Andy Green
                   ` (13 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_mbuf/rte_mbuf.h |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index 4fd9a0d9e..a2a37a311 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -836,8 +836,9 @@ rte_mbuf_refcnt_update(struct rte_mbuf *m, int16_t value)
 	 * reference counter can occur.
 	 */
 	if (likely(rte_mbuf_refcnt_read(m) == 1)) {
-		rte_mbuf_refcnt_set(m, 1 + value);
-		return 1 + value;
+		++value;
+		rte_mbuf_refcnt_set(m, value);
+		return value;
 	}
 
 	return __rte_mbuf_refcnt_update(m, value);
@@ -927,8 +928,9 @@ rte_mbuf_ext_refcnt_update(struct rte_mbuf_ext_shared_info *shinfo,
 	int16_t value)
 {
 	if (likely(rte_mbuf_ext_refcnt_read(shinfo) == 1)) {
-		rte_mbuf_ext_refcnt_set(shinfo, 1 + value);
-		return 1 + value;
+		++value;
+		rte_mbuf_ext_refcnt_set(shinfo, value);
+		return value;
 	}
 
 	return (uint16_t)rte_atomic16_add_return(&shinfo->refcnt_atomic, value);

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 12/24] rte_mbuf.h: explicit casts for int16 to uint16
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (10 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 11/24] rte_mbuf.h: avoid warnings from inadvertant promotion Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 13/24] rte_mbuf.h: make sure RTE-MIN compares same types Andy Green
                   ` (12 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

differences to the atomic16 are signed, but the
atomic16 itself is unsigned.  It needs to be
made explicit with casts.

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_mbuf/rte_mbuf.h |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index a2a37a311..c214f1945 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -806,7 +806,7 @@ rte_mbuf_refcnt_read(const struct rte_mbuf *m)
 static inline void
 rte_mbuf_refcnt_set(struct rte_mbuf *m, uint16_t new_value)
 {
-	rte_atomic16_set(&m->refcnt_atomic, new_value);
+	rte_atomic16_set(&m->refcnt_atomic, (int16_t)new_value);
 }
 
 /* internal */
@@ -837,8 +837,8 @@ rte_mbuf_refcnt_update(struct rte_mbuf *m, int16_t value)
 	 */
 	if (likely(rte_mbuf_refcnt_read(m) == 1)) {
 		++value;
-		rte_mbuf_refcnt_set(m, value);
-		return value;
+		rte_mbuf_refcnt_set(m, (uint16_t)value);
+		return (uint16_t)value;
 	}
 
 	return __rte_mbuf_refcnt_update(m, value);
@@ -909,7 +909,7 @@ static inline void
 rte_mbuf_ext_refcnt_set(struct rte_mbuf_ext_shared_info *shinfo,
 	uint16_t new_value)
 {
-	rte_atomic16_set(&shinfo->refcnt_atomic, new_value);
+	rte_atomic16_set(&shinfo->refcnt_atomic, (int16_t)new_value);
 }
 
 /**
@@ -929,8 +929,8 @@ rte_mbuf_ext_refcnt_update(struct rte_mbuf_ext_shared_info *shinfo,
 {
 	if (likely(rte_mbuf_ext_refcnt_read(shinfo) == 1)) {
 		++value;
-		rte_mbuf_ext_refcnt_set(shinfo, value);
-		return value;
+		rte_mbuf_ext_refcnt_set(shinfo, (uint16_t)value);
+		return (uint16_t)value;
 	}
 
 	return (uint16_t)rte_atomic16_add_return(&shinfo->refcnt_atomic, value);

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 13/24] rte_mbuf.h: make sure RTE-MIN compares same types
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (11 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 12/24] rte_mbuf.h: explicit casts for int16 to uint16 Andy Green
@ 2018-05-11  1:59 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 14/24] rte_mbuf.h: explicit cast restricting ptrdiff to uint16 Andy Green
                   ` (11 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  1:59 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_common.h:384:2:
warning: conversion from 'int' to 'uint16_t'
{aka 'short unsigned int'} may change value [-Wconversion]
  __extension__ ({ \
  ^~~~~~~~~~~~~
/projects/lagopus/src/dpdk/build/include/rte_mbuf.h:1204:16:
note: in expansion of macro 'RTE_MIN'
  m->data_off = RTE_MIN(RTE_PKTMBUF_HEADROOM,
(uint16_t)m->buf_len);

RTE_PKTMBUF_HEADROOM is typ 128, so it doesn't make trouble.

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_mbuf/rte_mbuf.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index c214f1945..a27dbb878 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -1201,7 +1201,8 @@ rte_pktmbuf_priv_size(struct rte_mempool *mp)
  */
 static inline void rte_pktmbuf_reset_headroom(struct rte_mbuf *m)
 {
-	m->data_off = RTE_MIN(RTE_PKTMBUF_HEADROOM, (uint16_t)m->buf_len);
+	m->data_off = (uint16_t)RTE_MIN((uint16_t)RTE_PKTMBUF_HEADROOM,
+					(uint16_t)m->buf_len);
 }
 
 /**

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 14/24] rte_mbuf.h: explicit cast restricting ptrdiff to uint16
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (12 preceding siblings ...)
  2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 13/24] rte_mbuf.h: make sure RTE-MIN compares same types Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 15/24] rte_mbuf.h: explicit cast for size type to uint32 Andy Green
                   ` (10 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_common.h:141:34:
warning: conversion from 'long unsigned int' to 'uint16_t'
{aka 'short unsigned int'} may change value [-Wconversion]
 #define RTE_PTR_DIFF(ptr1, ptr2) ((uintptr_t)(ptr1) -
(uintptr_t)(ptr2))
                                  ^
/projects/lagopus/src/dpdk/build/include/rte_mbuf.h:1360:13:
note: in expansion of macro 'RTE_PTR_DIFF'
  *buf_len = RTE_PTR_DIFF(shinfo, buf_addr);

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_mbuf/rte_mbuf.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index a27dbb878..0580ec8a0 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -1358,7 +1358,7 @@ rte_pktmbuf_ext_shinfo_init_helper(void *buf_addr, uint16_t *buf_len,
 	shinfo->fcb_opaque = fcb_opaque;
 	rte_mbuf_ext_refcnt_set(shinfo, 1);
 
-	*buf_len = RTE_PTR_DIFF(shinfo, buf_addr);
+	*buf_len = (uint16_t)RTE_PTR_DIFF(shinfo, buf_addr);
 	return shinfo;
 }
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 15/24] rte_mbuf.h: explicit cast for size type to uint32
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (13 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 14/24] rte_mbuf.h: explicit cast restricting ptrdiff to uint16 Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 16/24] rte_mbuf.h: explicit casts to uint16 to avoid warnings Andy Green
                   ` (9 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_mbuf/rte_mbuf.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index 0580ec8a0..169f3d3b0 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -1577,7 +1577,7 @@ static inline void rte_pktmbuf_detach(struct rte_mbuf *m)
 		__rte_pktmbuf_free_direct(m);
 
 	priv_size = rte_pktmbuf_priv_size(mp);
-	mbuf_size = sizeof(struct rte_mbuf) + priv_size;
+	mbuf_size = (uint32_t)sizeof(struct rte_mbuf) + priv_size;
 	buf_len = rte_pktmbuf_data_room_size(mp);
 
 	m->priv_size = priv_size;

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 16/24] rte_mbuf.h: explicit casts to uint16 to avoid warnings
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (14 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 15/24] rte_mbuf.h: explicit cast for size type to uint32 Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 17/24] rte_byteorder.h: explicit cast for return promotion Andy Green
                   ` (8 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_mbuf/rte_mbuf.h |   15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index 169f3d3b0..3cd76abbc 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -1580,7 +1580,7 @@ static inline void rte_pktmbuf_detach(struct rte_mbuf *m)
 	mbuf_size = (uint32_t)sizeof(struct rte_mbuf) + priv_size;
 	buf_len = rte_pktmbuf_data_room_size(mp);
 
-	m->priv_size = priv_size;
+	m->priv_size = (uint16_t)priv_size;
 	m->buf_addr = (char *)m + mbuf_size;
 	m->buf_iova = rte_mempool_virt2iova(m) + mbuf_size;
 	m->buf_len = (uint16_t)buf_len;
@@ -1905,7 +1905,7 @@ static inline char *rte_pktmbuf_prepend(struct rte_mbuf *m,
 	if (unlikely(len > rte_pktmbuf_headroom(m)))
 		return NULL;
 
-	m->data_off -= len;
+	m->data_off = (uint16_t)(m->data_off - len);
 	m->data_len = (uint16_t)(m->data_len + len);
 	m->pkt_len  = (m->pkt_len + len);
 
@@ -1966,7 +1966,7 @@ static inline char *rte_pktmbuf_adj(struct rte_mbuf *m, uint16_t len)
 		return NULL;
 
 	m->data_len = (uint16_t)(m->data_len - len);
-	m->data_off += len;
+	m->data_off = (uint16_t)(m->data_off + len);
 	m->pkt_len  = (m->pkt_len - len);
 	return (char *)m->buf_addr + m->data_off;
 }
@@ -2079,7 +2079,7 @@ static inline int rte_pktmbuf_chain(struct rte_mbuf *head, struct rte_mbuf *tail
 	cur_tail->next = tail;
 
 	/* accumulate number of segments and total length. */
-	head->nb_segs += tail->nb_segs;
+	head->nb_segs = (uint16_t)(head->nb_segs + tail->nb_segs);
 	head->pkt_len += tail->pkt_len;
 
 	/* pkt_len is only set in the head */
@@ -2109,7 +2109,8 @@ rte_validate_tx_offload(const struct rte_mbuf *m)
 		return 0;
 
 	if (ol_flags & PKT_TX_OUTER_IP_CKSUM)
-		inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
+		inner_l3_offset += (unsigned int)(m->outer_l2_len +
+						  m->outer_l3_len);
 
 	/* Headers are fragmented */
 	if (rte_pktmbuf_data_len(m) < inner_l3_offset + m->l3_len + m->l4_len)
@@ -2154,7 +2155,7 @@ rte_validate_tx_offload(const struct rte_mbuf *m)
 static inline int
 rte_pktmbuf_linearize(struct rte_mbuf *mbuf)
 {
-	int seg_len, copy_len;
+	size_t seg_len, copy_len;
 	struct rte_mbuf *m;
 	struct rte_mbuf *m_next;
 	char *buffer;
@@ -2169,7 +2170,7 @@ rte_pktmbuf_linearize(struct rte_mbuf *mbuf)
 		return -1;
 
 	buffer = rte_pktmbuf_mtod_offset(mbuf, char *, mbuf->data_len);
-	mbuf->data_len = (uint16_t)(mbuf->pkt_len);
+	mbuf->data_len = (uint16_t)mbuf->pkt_len;
 
 	/* Append data from next segments to the first one */
 	m = mbuf->next;

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 17/24] rte_byteorder.h: explicit cast for return promotion
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (15 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 16/24] rte_mbuf.h: explicit casts to uint16 to avoid warnings Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 18/24] rte_ether.h: explicit cast avoiding truncation warning Andy Green
                   ` (7 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 .../common/include/generic/rte_byteorder.h         |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/generic/rte_byteorder.h b/lib/librte_eal/common/include/generic/rte_byteorder.h
index 9bed85cca..8ffbac394 100644
--- a/lib/librte_eal/common/include/generic/rte_byteorder.h
+++ b/lib/librte_eal/common/include/generic/rte_byteorder.h
@@ -123,7 +123,7 @@ typedef uint64_t rte_le64_t; /**< 64-bit little-endian value. */
 static inline uint16_t
 rte_constant_bswap16(uint16_t x)
 {
-	return RTE_STATIC_BSWAP16(x);
+	return (uint16_t)RTE_STATIC_BSWAP16((uint16_t)x);
 }
 
 /*

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 18/24] rte_ether.h: explicit cast avoiding truncation warning
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (16 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 17/24] rte_byteorder.h: explicit cast for return promotion Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 19/24] rte_ether.h: stack vars declared at top of function Andy Green
                   ` (6 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_ether.h:213:13:
warning: conversion from 'int' to 'uint8_t'
{aka 'unsigned char'} may change value [-Wconversion]
  addr[0] &= ~ETHER_GROUP_ADDR;
/* clear multicast bit */

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_net/rte_ether.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_net/rte_ether.h b/lib/librte_net/rte_ether.h
index 95d0a533f..01d57f0ae 100644
--- a/lib/librte_net/rte_ether.h
+++ b/lib/librte_net/rte_ether.h
@@ -210,7 +210,7 @@ static inline void eth_random_addr(uint8_t *addr)
 	uint8_t *p = (uint8_t *)&rand;
 
 	rte_memcpy(addr, p, ETHER_ADDR_LEN);
-	addr[0] &= ~ETHER_GROUP_ADDR;       /* clear multicast bit */
+	addr[0] &= (uint8_t)~ETHER_GROUP_ADDR;       /* clear multicast bit */
 	addr[0] |= ETHER_LOCAL_ADMIN_ADDR;  /* set local assignment bit */
 }
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 19/24] rte_ether.h: stack vars declared at top of function
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (17 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 18/24] rte_ether.h: explicit cast avoiding truncation warning Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 20/24] rte_ethdev.h: align sign and scope of temp var Andy Green
                   ` (5 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_ether.h:
In function 'rte_vlan_strip':
/projects/lagopus/src/dpdk/build/include/rte_ether.h:357:2:
warning: ISO C90 forbids mixed declarations and code
[-Wdeclaration-after-statement]
  struct vlan_hdr *vh = (struct vlan_hdr *)(eh + 1);

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_net/rte_ether.h |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/librte_net/rte_ether.h b/lib/librte_net/rte_ether.h
index 01d57f0ae..bee2b34f0 100644
--- a/lib/librte_net/rte_ether.h
+++ b/lib/librte_net/rte_ether.h
@@ -350,11 +350,12 @@ static inline int rte_vlan_strip(struct rte_mbuf *m)
 {
 	struct ether_hdr *eh
 		 = rte_pktmbuf_mtod(m, struct ether_hdr *);
+	struct vlan_hdr *vh;
 
 	if (eh->ether_type != rte_cpu_to_be_16(ETHER_TYPE_VLAN))
 		return -1;
 
-	struct vlan_hdr *vh = (struct vlan_hdr *)(eh + 1);
+	vh = (struct vlan_hdr *)(eh + 1);
 	m->ol_flags |= PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED;
 	m->vlan_tci = rte_be_to_cpu_16(vh->vlan_tci);
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 20/24] rte_ethdev.h: align sign and scope of temp var
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (18 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 19/24] rte_ether.h: stack vars declared at top of function Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 21/24] rte_ethdev.h: explicit cast for truncation Andy Green
                   ` (4 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_ethdev/rte_ethdev.h |   25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 7ccf4bae6..2487e1d2d 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
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 21/24] rte_ethdev.h: explicit cast for truncation
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (19 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 20/24] rte_ethdev.h: align sign and scope of temp var Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 22/24] rte_hash_crc.h: stack vars declared at top of function Andy Green
                   ` (3 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_ethdev.h:
In function 'rte_eth_tx_buffer_flush':
/projects/lagopus/src/dpdk/build/include/rte_ethdev.h:4248:55:
warning: conversion from 'int' to 'uint16_t'
{aka 'short unsigned int'} may change value [-Wconversion]
   buffer->error_callback(&buffer->pkts[sent], to_send - sent,

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_ethdev/rte_ethdev.h |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
index 2487e1d2d..2cb5fe3be 100644
--- a/lib/librte_ethdev/rte_ethdev.h
+++ b/lib/librte_ethdev/rte_ethdev.h
@@ -4245,8 +4245,9 @@ rte_eth_tx_buffer_flush(uint16_t port_id, uint16_t queue_id,
 
 	/* All packets sent, or to be dealt with by callback below */
 	if (unlikely(sent != to_send))
-		buffer->error_callback(&buffer->pkts[sent], to_send - sent,
-				buffer->error_userdata);
+		buffer->error_callback(&buffer->pkts[sent],
+				       (uint16_t)(to_send - sent),
+				       buffer->error_userdata);
 
 	return sent;
 }

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 22/24] rte_hash_crc.h: stack vars declared at top of function
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (20 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 21/24] rte_ethdev.h: explicit cast for truncation Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 23/24] rte_hash_crc.h: explicit casts for truncation Andy Green
                   ` (2 subsequent siblings)
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_hash_crc.h:
In function 'crc32c_2words':
/projects/lagopus/src/dpdk/build/include/rte_hash_crc.h:347:2:
warning: ISO C90 forbids mixed declarations and code
[-Wdeclaration-after-statement]
  uint32_t crc, term1, term2;

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_hash/rte_hash_crc.h |    3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/librte_hash/rte_hash_crc.h b/lib/librte_hash/rte_hash_crc.h
index 479f84b14..5f5fb3db1 100644
--- a/lib/librte_hash/rte_hash_crc.h
+++ b/lib/librte_hash/rte_hash_crc.h
@@ -338,14 +338,13 @@ crc32c_1word(uint32_t data, uint32_t init_val)
 static inline uint32_t
 crc32c_2words(uint64_t data, uint32_t init_val)
 {
+	uint32_t crc, term1, term2;
 	union {
 		uint64_t u64;
 		uint32_t u32[2];
 	} d;
 	d.u64 = data;
 
-	uint32_t crc, term1, term2;
-
 	crc = init_val;
 	crc ^= d.u32[0];
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 23/24] rte_hash_crc.h: explicit casts for truncation
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (21 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 22/24] rte_hash_crc.h: stack vars declared at top of function Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 24/24] test_table_pipeline: repair munged indirection level Andy Green
  2018-05-11  3:04 ` [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Stephen Hemminger
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

/projects/lagopus/src/dpdk/build/include/rte_hash_crc.h:
In function 'crc32c_sse42_u64_mimic':
/projects/lagopus/src/dpdk/build/include/rte_hash_crc.h:402:40:
warning: conversion from 'uint64_t' {aka 'long unsigned int'}
to 'uint32_t' {aka 'unsigned int'} may change value [-Wconversion]
  init_val = crc32c_sse42_u32(d.u32[0], init_val);

Signed-off-by: Andy Green <andy@warmcat.com>
---
 lib/librte_hash/rte_hash_crc.h |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_hash/rte_hash_crc.h b/lib/librte_hash/rte_hash_crc.h
index 5f5fb3db1..cf28031b3 100644
--- a/lib/librte_hash/rte_hash_crc.h
+++ b/lib/librte_hash/rte_hash_crc.h
@@ -398,9 +398,9 @@ crc32c_sse42_u64_mimic(uint64_t data, uint64_t init_val)
 	} d;
 
 	d.u64 = data;
-	init_val = crc32c_sse42_u32(d.u32[0], init_val);
-	init_val = crc32c_sse42_u32(d.u32[1], init_val);
-	return init_val;
+	init_val = crc32c_sse42_u32(d.u32[0], (uint32_t)init_val);
+	init_val = crc32c_sse42_u32(d.u32[1], (uint32_t)init_val);
+	return (uint32_t)init_val;
 }
 #endif
 
@@ -412,7 +412,7 @@ crc32c_sse42_u64(uint64_t data, uint64_t init_val)
 			"crc32q %[data], %[init_val];"
 			: [init_val] "+r" (init_val)
 			: [data] "rm" (data));
-	return init_val;
+	return (uint32_t)init_val;
 }
 #endif
 

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [dpdk-dev] [PATCH v2 24/24] test_table_pipeline: repair munged indirection level
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (22 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 23/24] rte_hash_crc.h: explicit casts for truncation Andy Green
@ 2018-05-11  2:00 ` Andy Green
  2018-05-11  3:04 ` [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Stephen Hemminger
  24 siblings, 0 replies; 26+ messages in thread
From: Andy Green @ 2018-05-11  2:00 UTC (permalink / raw)
  To: dev

Signed-off-by: Andy Green <andy@warmcat.com>
---
 test/test/test_table_pipeline.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/test/test/test_table_pipeline.c b/test/test/test_table_pipeline.c
index 055a1a4e7..d007d55ce 100644
--- a/test/test/test_table_pipeline.c
+++ b/test/test/test_table_pipeline.c
@@ -71,7 +71,7 @@ table_action_stub_hit(struct rte_pipeline *p, struct rte_mbuf **pkts,
 
 rte_pipeline_table_action_handler_miss
 table_action_stub_miss(struct rte_pipeline *p, struct rte_mbuf **pkts,
-	uint64_t pkts_mask, struct rte_pipeline_table_entry **entry, void *arg);
+	uint64_t pkts_mask, struct rte_pipeline_table_entry *entry, void *arg);
 
 rte_pipeline_table_action_handler_hit
 table_action_0x00(__attribute__((unused)) struct rte_pipeline *p,
@@ -105,7 +105,7 @@ rte_pipeline_table_action_handler_miss
 table_action_stub_miss(struct rte_pipeline *p,
 	__attribute__((unused)) struct rte_mbuf **pkts,
 	uint64_t pkts_mask,
-	__attribute__((unused)) struct rte_pipeline_table_entry **entry,
+	__attribute__((unused)) struct rte_pipeline_table_entry *entry,
 	__attribute__((unused)) void *arg)
 {
 	printf("STUB Table Action Miss - setting mask to 0x%"PRIx64"\n",

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus
  2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
                   ` (23 preceding siblings ...)
  2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 24/24] test_table_pipeline: repair munged indirection level Andy Green
@ 2018-05-11  3:04 ` Stephen Hemminger
  24 siblings, 0 replies; 26+ messages in thread
From: Stephen Hemminger @ 2018-05-11  3:04 UTC (permalink / raw)
  To: Andy Green; +Cc: dev

On Fri, 11 May 2018 09:58:54 +0800
Andy Green <andy@warmcat.com> wrote:

> The following series fixes build problems in dpdk master
> headers, found when using it as the dpdk subproject in
> lagopus.  These errors are coming when you try to use
> the dpdk headers, not when you build dpdk itself.
> 
> Two patches are updated to follow requests for larger
> work.
> 
> ---
> 
> Andy Green (24):
>       lib/librte_eal: import libbsd strlcpy
>       lib/librte_ethdev: change eth-dev-ops API to return int
>       rte_common.h: cast gcc builtin result to avoid complaints
>       lib/librte_eal: explicit tmp cast
>       lib/librte_eal: explicit cast for signed change
>       /lib/librte_eal: stage cast from uint64 to long
>       rte_spinlock.h: stack declarations before code
>       rte_ring_generic.h: stack declarations before code
>       rte_ring.h: remove signed type flipflopping
>       rte_dev.h: stack declaration at top of own basic block
>       rte_mbuf.h: avoid warnings from inadvertant promotion
>       rte_mbuf.h: explicit casts for int16 to uint16
>       rte_mbuf.h: make sure RTE-MIN compares same types
>       rte_mbuf.h: explicit cast restricting ptrdiff to uint16
>       rte_mbuf.h: explicit cast for size type to uint32
>       rte_mbuf.h: explicit casts to uint16 to avoid warnings
>       rte_byteorder.h: explicit cast for return promotion
>       rte_ether.h: explicit cast avoiding truncation warning
>       rte_ether.h: stack vars declared at top of function
>       rte_ethdev.h: align sign and scope of temp var
>       rte_ethdev.h: explicit cast for truncation
>       rte_hash_crc.h: stack vars declared at top of function
>       rte_hash_crc.h: explicit casts for truncation
>       test_table_pipeline: repair munged indirection level
> 
> 
>  drivers/net/ark/ark_ethdev_rx.c                    |    4 +-
>  drivers/net/ark/ark_ethdev_rx.h                    |    3 +-
>  drivers/net/avf/avf_rxtx.c                         |    4 +-
>  drivers/net/avf/avf_rxtx.h                         |    2 +
>  drivers/net/bnxt/bnxt_ethdev.c                     |    5 ++-
>  drivers/net/dpaa/dpaa_ethdev.c                     |    4 +-
>  drivers/net/dpaa2/dpaa2_ethdev.c                   |    6 ++-
>  drivers/net/e1000/e1000_ethdev.h                   |    6 +--
>  drivers/net/e1000/em_rxtx.c                        |    4 +-
>  drivers/net/e1000/igb_rxtx.c                       |    4 +-
>  drivers/net/enic/enic_ethdev.c                     |    9 ++---
>  drivers/net/i40e/i40e_rxtx.c                       |    4 +-
>  drivers/net/i40e/i40e_rxtx.h                       |    3 +-
>  drivers/net/ixgbe/ixgbe_ethdev.h                   |    3 +-
>  drivers/net/ixgbe/ixgbe_rxtx.c                     |    4 +-
>  drivers/net/nfp/nfp_net.c                          |    9 ++---
>  drivers/net/sfc/sfc_ethdev.c                       |    4 +-
>  drivers/net/thunderx/nicvf_ethdev.c                |    2 +
>  drivers/net/thunderx/nicvf_rxtx.c                  |    4 +-
>  drivers/net/thunderx/nicvf_rxtx.h                  |    2 +
>  drivers/net/vhost/rte_eth_vhost.c                  |    4 +-
>  examples/l3fwd-power/main.c                        |    2 +
>  lib/librte_eal/common/eal_common_string_fns.c      |   34 +++++++++++++++++++
>  .../common/include/arch/x86/rte_memcpy.h           |    8 ++--
>  .../common/include/arch/x86/rte_spinlock.h         |    4 ++
>  .../common/include/generic/rte_byteorder.h         |    2 +
>  lib/librte_eal/common/include/rte_common.h         |    2 +
>  lib/librte_eal/common/include/rte_dev.h            |   15 +++++---
>  lib/librte_eal/common/include/rte_lcore.h          |    2 +
>  lib/librte_eal/common/include/rte_random.h         |    6 ++-
>  lib/librte_eal/common/include/rte_string_fns.h     |    7 +---
>  lib/librte_ethdev/rte_ethdev.h                     |   30 ++++++++++-------
>  lib/librte_ethdev/rte_ethdev_core.h                |    4 +-
>  lib/librte_hash/rte_hash_crc.h                     |   11 +++---
>  lib/librte_mbuf/rte_mbuf.h                         |   36 +++++++++++---------
>  lib/librte_net/rte_ether.h                         |    5 ++-
>  lib/librte_ring/rte_ring.h                         |    4 +-
>  lib/librte_ring/rte_ring_c11_mem.h                 |    2 +
>  lib/librte_ring/rte_ring_generic.h                 |   10 ++----
>  test/test/test_table_pipeline.c                    |    4 +-
>  40 files changed, 157 insertions(+), 121 deletions(-)
> 
> --
> Signature

All looks good to me.

Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2018-05-11  3:04 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-11  1:58 [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Andy Green
2018-05-11  1:58 ` [dpdk-dev] [PATCH v2 01/24] lib/librte_eal: import libbsd strlcpy Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 02/24] lib/librte_ethdev: change eth-dev-ops API to return int Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 03/24] rte_common.h: cast gcc builtin result to avoid complaints Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 04/24] lib/librte_eal: explicit tmp cast Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 05/24] lib/librte_eal: explicit cast for signed change Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 06/24] /lib/librte_eal: stage cast from uint64 to long Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 07/24] rte_spinlock.h: stack declarations before code Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 08/24] rte_ring_generic.h: " Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 09/24] rte_ring.h: remove signed type flipflopping Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 10/24] rte_dev.h: stack declaration at top of own basic block Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 11/24] rte_mbuf.h: avoid warnings from inadvertant promotion Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 12/24] rte_mbuf.h: explicit casts for int16 to uint16 Andy Green
2018-05-11  1:59 ` [dpdk-dev] [PATCH v2 13/24] rte_mbuf.h: make sure RTE-MIN compares same types Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 14/24] rte_mbuf.h: explicit cast restricting ptrdiff to uint16 Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 15/24] rte_mbuf.h: explicit cast for size type to uint32 Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 16/24] rte_mbuf.h: explicit casts to uint16 to avoid warnings Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 17/24] rte_byteorder.h: explicit cast for return promotion Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 18/24] rte_ether.h: explicit cast avoiding truncation warning Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 19/24] rte_ether.h: stack vars declared at top of function Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 20/24] rte_ethdev.h: align sign and scope of temp var Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 21/24] rte_ethdev.h: explicit cast for truncation Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 22/24] rte_hash_crc.h: stack vars declared at top of function Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 23/24] rte_hash_crc.h: explicit casts for truncation Andy Green
2018-05-11  2:00 ` [dpdk-dev] [PATCH v2 24/24] test_table_pipeline: repair munged indirection level Andy Green
2018-05-11  3:04 ` [dpdk-dev] [PATCH v2 00/24] Fixes for GCC8 against lagopus Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).