From patchwork Fri Jun 19 18:57:03 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Cyril Chemparathy X-Patchwork-Id: 5633 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id E4AF1C92C; Fri, 19 Jun 2015 20:57:32 +0200 (CEST) Received: from sclab-apps-2.localdomain (sc-fw1.tilera.com [12.218.212.162]) by dpdk.org (Postfix) with ESMTP id A6C0BC8D6 for ; Fri, 19 Jun 2015 20:57:18 +0200 (CEST) X-CheckPoint: {5584660D-4-A3D4DA0C-C0000002} Received: by sclab-apps-2.localdomain (Postfix, from userid 1318) id E32D72202E6; Fri, 19 Jun 2015 11:57:17 -0700 (PDT) From: Cyril Chemparathy To: dev@dpdk.org Date: Fri, 19 Jun 2015 11:57:03 -0700 Message-Id: <1434740232-10954-2-git-send-email-cchemparathy@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: <1434740232-10954-1-git-send-email-cchemparathy@ezchip.com> References: <1434740232-10954-1-git-send-email-cchemparathy@ezchip.com> Subject: [dpdk-dev] [PATCH v3 01/10] mempool: silence -Wcast-align on pointer arithmetic X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Translating from a mempool object to the mempool pointer does not break alignment constraints. However, the compiler is unaware of this fact and complains on -Wcast-align. This patch modifies the code to use RTE_PTR_SUB(), thereby silencing the compiler by casting through (void *). Acked-by: Olivier Matz Signed-off-by: Cyril Chemparathy --- lib/librte_mempool/rte_mempool.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/librte_mempool/rte_mempool.h b/lib/librte_mempool/rte_mempool.h index bc2bae0..8be040b 100644 --- a/lib/librte_mempool/rte_mempool.h +++ b/lib/librte_mempool/rte_mempool.h @@ -236,15 +236,13 @@ struct rte_mempool { */ static inline struct rte_mempool **__mempool_from_obj(void *obj) { - struct rte_mempool **mpp; unsigned off; off = sizeof(struct rte_mempool *); #ifdef RTE_LIBRTE_MEMPOOL_DEBUG off += sizeof(uint64_t); #endif - mpp = (struct rte_mempool **)((char *)obj - off); - return mpp; + return RTE_PTR_SUB(obj, off); } /**