Fix x86_64 test failures.

Change-Id: I97b3d1755d2e205ca7423248a2af37f1875d5116
diff --git a/runtime/arch/x86_64/thread_x86_64.cc b/runtime/arch/x86_64/thread_x86_64.cc
index de4c56a..b7a5c43 100644
--- a/runtime/arch/x86_64/thread_x86_64.cc
+++ b/runtime/arch/x86_64/thread_x86_64.cc
@@ -31,8 +31,7 @@
   syscall(__NR_arch_prctl, code, val);
 }
 void Thread::InitCpu() {
-  static Mutex modify_ldt_lock("modify_ldt lock");
-  MutexLock mu(Thread::Current(), modify_ldt_lock);
+  MutexLock mu(nullptr, *Locks::modify_ldt_lock_);
   arch_prctl(ARCH_SET_GS, this);
 
   // Allow easy indirection back to Thread*.
diff --git a/runtime/base/mutex.cc b/runtime/base/mutex.cc
index 705be40..d2b4e01 100644
--- a/runtime/base/mutex.cc
+++ b/runtime/base/mutex.cc
@@ -816,7 +816,7 @@
 void Locks::Init() {
   if (logging_lock_ != nullptr) {
     // Already initialized.
-    if (kRuntimeISA == kX86) {
+    if (kRuntimeISA == kX86 || kRuntimeISA == kX86_64) {
       DCHECK(modify_ldt_lock_ != nullptr);
     } else {
       DCHECK(modify_ldt_lock_ == nullptr);
@@ -877,7 +877,7 @@
     DCHECK(allocated_thread_ids_lock_ == nullptr);
     allocated_thread_ids_lock_ =  new Mutex("allocated thread ids lock", current_lock_level);
 
-    if (kRuntimeISA == kX86) {
+    if (kRuntimeISA == kX86 || kRuntimeISA == kX86_64) {
       UPDATE_CURRENT_LOCK_LEVEL(kModifyLdtLock);
       DCHECK(modify_ldt_lock_ == nullptr);
       modify_ldt_lock_ = new Mutex("modify_ldt lock", current_lock_level);