diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog
index b441ea3b705d0bc2c08cfb7d12515b109c3cad55..af3b8a30f8eb46232a952b4953ae1fd9840aad81 100644
--- a/libsanitizer/ChangeLog
+++ b/libsanitizer/ChangeLog
@@ -1,3 +1,7 @@
+2014-06-11  Richard Biener  <rguenther@suse.de>
+
+	* asan/asan_linux.cc: Cherry pick upstream r210012.
+
 2014-05-30  Jakub Jelinek  <jakub@redhat.com>
 
 	* sanitizer_common/sanitizer_stacktrace.cc: Cherry pick upstream
diff --git a/libsanitizer/asan/asan_linux.cc b/libsanitizer/asan/asan_linux.cc
index c401d9df48b250b1d341fc0f8247c7ff6c2538e5..08d2885e54803b363f2c6677bf4960377681efc9 100644
--- a/libsanitizer/asan/asan_linux.cc
+++ b/libsanitizer/asan/asan_linux.cc
@@ -89,6 +89,10 @@ static int FindFirstDSOCallback(struct dl_phdr_info *info, size_t size,
   if (!info->dlpi_name || info->dlpi_name[0] == 0)
     return 0;
 
+  // Ignore vDSO
+  if (internal_strncmp(info->dlpi_name, "linux-", sizeof("linux-") - 1) == 0)
+    return 0;
+
   *(const char **)data = info->dlpi_name;
   return 1;
 }