From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anatoly Burakov Subject: [PATCH v4 8/9] mem: fix statement having no effect Date: Fri, 27 Apr 2018 18:07:09 +0100 Message-ID: <437feb67375bd2e52f66cce8b33e01c55f03160b.1524848343.git.anatoly.burakov@intel.com> References: Cc: thomas@monjalon.net, bruce.richardson@intel.com, anatoly.burakov@intel.com To: dev@dpdk.org Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 78FB2AAF1 for ; Fri, 27 Apr 2018 19:07:15 +0200 (CEST) In-Reply-To: In-Reply-To: References: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Coverity reports these lines as having no effect. Technically, we do want for those lines to have no effect, however they would've likely been optimized out. Add volatile qualifiers to ensure the code has effects. Coverity issue: 272608 Fixes: 582bed1e1d1d ("mem: support mapping hugepages at runtime") Cc: anatoly.burakov@intel.com Signed-off-by: Anatoly Burakov Acked-by: Bruce Richardson --- lib/librte_eal/linuxapp/eal/eal_memalloc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/librte_eal/linuxapp/eal/eal_memalloc.c b/lib/librte_eal/linuxapp/eal/eal_memalloc.c index a40cfd3..672a1be 100644 --- a/lib/librte_eal/linuxapp/eal/eal_memalloc.c +++ b/lib/librte_eal/linuxapp/eal/eal_memalloc.c @@ -504,7 +504,12 @@ alloc_seg(struct rte_memseg *ms, void *addr, int socket_id, if (!internal_config.single_file_segments) close(fd); - *(int *)addr = *(int *)addr; + /* we need to trigger a write to the page to enforce page fault and + * ensure that page is accessible to us, but we can't overwrite value + * that is already there, so read the old value, and write itback. + * kernel populates the page with zeroes initially. + */ + *(volatile int *)addr = *(volatile int *)addr; ms->addr = addr; ms->hugepage_sz = alloc_sz; -- 2.7.4