From: Cyril Chemparathy Date: Mon, 22 Jun 2015 18:34:17 +0000 (-0700) Subject: ethdev: silence warning on pointer arithmetic X-Git-Tag: spdx-start~8974 X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=2f935c125a0935ecf86a376bcc1182834c08fe96;p=dpdk.git ethdev: silence warning on pointer arithmetic Statistics offsets in the rte_stats_strings[] array are always 64-bit aligned. However, the compiler is unaware of this fact and complains on -Wcast-align. This patch modifies the code to use RTE_PTR_ADD(), thereby silencing the compiler by casting through (void *). Signed-off-by: Cyril Chemparathy Acked-by: Olivier Matz --- diff --git a/lib/librte_ether/rte_ethdev.c b/lib/librte_ether/rte_ethdev.c index e13fde5e80..02cd07f5e7 100644 --- a/lib/librte_ether/rte_ethdev.c +++ b/lib/librte_ether/rte_ethdev.c @@ -1742,8 +1742,7 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, struct rte_eth_stats eth_stats; struct rte_eth_dev *dev; unsigned count, i, q; - uint64_t val; - char *stats_ptr; + uint64_t val, *stats_ptr; if (!rte_eth_dev_is_valid_port(port_id)) { PMD_DEBUG_TRACE("Invalid port_id=%d\n", port_id); @@ -1770,8 +1769,9 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, /* global stats */ for (i = 0; i < RTE_NB_STATS; i++) { - stats_ptr = (char *)ð_stats + rte_stats_strings[i].offset; - val = *(uint64_t *)stats_ptr; + stats_ptr = RTE_PTR_ADD(ð_stats, + rte_stats_strings[i].offset); + val = *stats_ptr; snprintf(xstats[count].name, sizeof(xstats[count].name), "%s", rte_stats_strings[i].name); xstats[count++].value = val; @@ -1780,10 +1780,10 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, /* per-rxq stats */ for (q = 0; q < dev->data->nb_rx_queues; q++) { for (i = 0; i < RTE_NB_RXQ_STATS; i++) { - stats_ptr = (char *)ð_stats; - stats_ptr += rte_rxq_stats_strings[i].offset; - stats_ptr += q * sizeof(uint64_t); - val = *(uint64_t *)stats_ptr; + stats_ptr = RTE_PTR_ADD(ð_stats, + rte_rxq_stats_strings[i].offset + + q * sizeof(uint64_t)); + val = *stats_ptr; snprintf(xstats[count].name, sizeof(xstats[count].name), "rx_queue_%u_%s", q, rte_rxq_stats_strings[i].name); @@ -1794,10 +1794,10 @@ rte_eth_xstats_get(uint8_t port_id, struct rte_eth_xstats *xstats, /* per-txq stats */ for (q = 0; q < dev->data->nb_tx_queues; q++) { for (i = 0; i < RTE_NB_TXQ_STATS; i++) { - stats_ptr = (char *)ð_stats; - stats_ptr += rte_txq_stats_strings[i].offset; - stats_ptr += q * sizeof(uint64_t); - val = *(uint64_t *)stats_ptr; + stats_ptr = RTE_PTR_ADD(ð_stats, + rte_txq_stats_strings[i].offset + + q * sizeof(uint64_t)); + val = *stats_ptr; snprintf(xstats[count].name, sizeof(xstats[count].name), "tx_queue_%u_%s", q, rte_txq_stats_strings[i].name);