diff --git a/libc/Android.mk b/libc/Android.mk
index 0485d72..0adaff7 100644
--- a/libc/Android.mk
+++ b/libc/Android.mk
@@ -96,7 +96,6 @@
     bionic/access.cpp \
     bionic/assert.cpp \
     bionic/atof.cpp \
-    bionic/__bionic_name_mem.cpp \
     bionic/bionic_time_conversions.cpp \
     bionic/brk.cpp \
     bionic/c16rtomb.cpp \
diff --git a/libc/bionic/__bionic_name_mem.cpp b/libc/bionic/__bionic_name_mem.cpp
deleted file mode 100644
index 72a1d1e..0000000
--- a/libc/bionic/__bionic_name_mem.cpp
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "private/bionic_name_mem.h"
-
-#include <sys/prctl.h>
-
-// Local definitions of custom prctl arguments to set a vma name in some kernels.
-#define BIONIC_PR_SET_VMA               0x53564d41
-#define BIONIC_PR_SET_VMA_ANON_NAME     0
-
-// Names a region of memory.  The name is expected to show up in /proc/pid/maps
-// and /proc/pid/smaps.  There is no guarantee that it will work, and if it
-// does work it is likely to only work on memory that was allocated with
-// mmap(MAP_ANONYMOUS), and only on regions that are page aligned.  name should
-// be a pointer to a string that is valid for as long as the memory is mapped,
-// preferably a compile-time constant string.
-//
-// Returns -1 on error and sets errno.  If it returns an error naming page
-// aligned anonymous memory the kernel doesn't support naming, and an alternate
-// method of naming memory should be used (like ashmem).
-
-int __bionic_name_mem(void* addr, size_t len, const char* name) {
-    return prctl(BIONIC_PR_SET_VMA, BIONIC_PR_SET_VMA_ANON_NAME, addr, len, name);
-}
diff --git a/libc/bionic/dlmalloc.c b/libc/bionic/dlmalloc.c
index 2d67392..7ecca1d 100644
--- a/libc/bionic/dlmalloc.c
+++ b/libc/bionic/dlmalloc.c
@@ -26,11 +26,16 @@
 #define CORRUPTION_ERROR_ACTION(m) __bionic_heap_corruption_error(__FUNCTION__)
 #define USAGE_ERROR_ACTION(m,p) __bionic_heap_usage_error(__FUNCTION__, p)
 
-/* Bionic named anonymous memory declarations */
+// Bionic named anonymous memory declarations.
 static void* named_anonymous_mmap(size_t length);
 #define MMAP(s) named_anonymous_mmap(s)
 #define DIRECT_MMAP(s) named_anonymous_mmap(s)
 
+// Local definitions of custom prctl arguments to set a vma name in Android kernels.
+#include <sys/prctl.h>
+#define PR_SET_VMA           0x53564d41
+#define PR_SET_VMA_ANON_NAME 0
+
 // Ugly inclusion of C file so that bionic specific #defines configure dlmalloc.
 #include "../upstream-dlmalloc/malloc.c"
 
@@ -51,6 +56,6 @@
   if (map == MAP_FAILED) {
     return map;
   }
-  __bionic_name_mem(map, length, "libc_malloc");
+  prctl(BIONIC_PR_SET_VMA, BIONIC_PR_SET_VMA_ANON_NAME, map, length, "libc_malloc");
   return map;
 }
diff --git a/libc/include/sys/prctl.h b/libc/include/sys/prctl.h
index 391c22a..f66f6f5 100644
--- a/libc/include/sys/prctl.h
+++ b/libc/include/sys/prctl.h
@@ -38,18 +38,6 @@
 #error PR_SET_TIMERSLACK_PID defined twice
 #endif
 
-#if !defined(PR_SET_VMA)
-#define PR_SET_VMA 0x53564d41
-#else
-#error PR_SET_VMA defined twice
-#endif
-
-#if !defined(PR_SET_VMA_ANON_NAME)
-#define PR_SET_VMA_ANON_NAME 0
-#else
-#error PR_SET_VMA_ANON_NAME defined twice
-#endif
-
 __BEGIN_DECLS
 
 /* IMPORTANT NOTE: This function is declared as taking a variable number
@@ -63,4 +51,3 @@
 __END_DECLS
 
 #endif /* _SYS_PRCTL_H */
-
diff --git a/libc/private/bionic_name_mem.h b/libc/private/bionic_name_mem.h
deleted file mode 100644
index 1c7664e..0000000
--- a/libc/private/bionic_name_mem.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2013 The Android Open Source Project
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *  * Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- *  * Redistributions in binary form must reproduce the above copyright
- *    notice, this list of conditions and the following disclaimer in
- *    the documentation and/or other materials provided with the
- *    distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifndef _BIONIC_NAME_MEM_H
-#define _BIONIC_NAME_MEM_H
-
-#include <sys/cdefs.h>
-#include <stddef.h>
-
-__BEGIN_DECLS
-
-__LIBC_HIDDEN__ int __bionic_name_mem(void* addr, size_t len, const char* name);
-
-__END_DECLS
-
-#endif
