Merge "greylist is no longer enabled by default."
diff --git a/libc/bionic/libc_init_common.cpp b/libc/bionic/libc_init_common.cpp
index d267b68..e051762 100644
--- a/libc/bionic/libc_init_common.cpp
+++ b/libc/bionic/libc_init_common.cpp
@@ -70,7 +70,9 @@
 __LIBC_HIDDEN__ void* __libc_sysinfo = reinterpret_cast<void*>(__libc_int0x80);
 
 __LIBC_HIDDEN__ void __libc_init_sysinfo(KernelArgumentBlock& args) {
-  __libc_sysinfo = reinterpret_cast<void*>(args.getauxval(AT_SYSINFO));
+  // Running under valgrind, AT_SYSINFO won't be set.
+  void* at_sysinfo = reinterpret_cast<void*>(args.getauxval(AT_SYSINFO));
+  if (at_sysinfo != nullptr) __libc_sysinfo = at_sysinfo;
 }
 
 // TODO: lose this function and just access __libc_sysinfo directly.
diff --git a/tests/dlfcn_test.cpp b/tests/dlfcn_test.cpp
index 0ec4663..4901d50 100644
--- a/tests/dlfcn_test.cpp
+++ b/tests/dlfcn_test.cpp
@@ -310,12 +310,7 @@
   dlclose(handle);
 }
 
-// ld.gold for arm produces incorrect binary (see http://b/27930475 for details)
-#if defined(__arm__)
-TEST(dlfcn, KNOWN_FAILURE_ON_BIONIC(ifunc_ctor_call)) {
-#else
 TEST(dlfcn, ifunc_ctor_call) {
-#endif
   typedef const char* (*fn_ptr)();
 
   void* handle = dlopen("libtest_ifunc.so", RTLD_NOW);
@@ -330,12 +325,7 @@
   dlclose(handle);
 }
 
-// ld.gold for arm produces incorrect binary (see http://b/27930475 for details)
-#if defined(__arm__)
-TEST(dlfcn, KNOWN_FAILURE_ON_BIONIC(ifunc_ctor_call_rtld_lazy)) {
-#else
 TEST(dlfcn, ifunc_ctor_call_rtld_lazy) {
-#endif
   typedef const char* (*fn_ptr)();
 
   void* handle = dlopen("libtest_ifunc.so", RTLD_LAZY);