diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index fdd5bddb30756be1dce1d96cbf74fcc44e718644..f67960bedebba63663f573f28df9f746aa106910 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -549,6 +549,7 @@ void maps__insert(struct maps *maps, struct map *map)
 
 			if (maps_by_name == NULL) {
 				__maps__free_maps_by_name(maps);
+				up_write(&maps->lock);
 				return;
 			}