DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] mem: fix freeing of memzone used by ivshmem
@ 2016-04-14 13:48 Mauricio Vasquez B
  2016-04-14 14:48 ` Sergio Gonzalez Monroy
  2016-04-15  8:29 ` [dpdk-dev] [PATCH v2] " Mauricio Vasquez B
  0 siblings, 2 replies; 6+ messages in thread
From: Mauricio Vasquez B @ 2016-04-14 13:48 UTC (permalink / raw)
  To: sergio.gonzalez.monroy; +Cc: dev

although previous implementation returned an error when trying to release a
memzone assigned to an ivshmem device, it stills freed it.

Fixes: cd10c42eb5bc ("mem: fix ivshmem freeing")

Signed-off-by: Mauricio Vasquez B <mauricio.vasquezbernal@studenti.polito.it>
---
 lib/librte_eal/common/eal_common_memzone.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_memzone.c b/lib/librte_eal/common/eal_common_memzone.c
index 711c845..1fce906 100644
--- a/lib/librte_eal/common/eal_common_memzone.c
+++ b/lib/librte_eal/common/eal_common_memzone.c
@@ -321,15 +321,19 @@ rte_memzone_free(const struct rte_memzone *mz)
 	idx = ((uintptr_t)mz - (uintptr_t)mcfg->memzone);
 	idx = idx / sizeof(struct rte_memzone);
 
-	addr = mcfg->memzone[idx].addr;
 #ifdef RTE_LIBRTE_IVSHMEM
 	/*
 	 * If ioremap_addr is set, it's an IVSHMEM memzone and we cannot
 	 * free it.
 	 */
-	if (mcfg->memzone[idx].ioremap_addr != 0)
+	if (mcfg->memzone[idx].ioremap_addr != 0) {
 		ret = -EINVAL;
+		goto error;
+	}
 #endif
+
+	addr = mcfg->memzone[idx].addr;
+
 	if (addr == NULL)
 		ret = -EINVAL;
 	else if (mcfg->memzone_cnt == 0) {
@@ -345,6 +349,10 @@ rte_memzone_free(const struct rte_memzone *mz)
 	rte_free(addr);
 
 	return ret;
+
+error:
+	rte_rwlock_write_unlock(&mcfg->mlock);
+	return ret;
 }
 
 /*
-- 
1.9.1

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

end of thread, other threads:[~2016-04-29 14:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-14 13:48 [dpdk-dev] [PATCH] mem: fix freeing of memzone used by ivshmem Mauricio Vasquez B
2016-04-14 14:48 ` Sergio Gonzalez Monroy
2016-04-15  8:23   ` Mauricio Vásquez
2016-04-15  8:29 ` [dpdk-dev] [PATCH v2] " Mauricio Vasquez B
2016-04-21 11:21   ` Sergio Gonzalez Monroy
2016-04-29 14:34     ` Thomas Monjalon

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).