Index: kernel/generic/src/proc/thread.c
===================================================================
--- kernel/generic/src/proc/thread.c	(revision a3d87b9d6ac087b0623ed2e3b6ac96f6515f4c5a)
+++ kernel/generic/src/proc/thread.c	(revision 74cb66109763c1d227d236094006a779dee50793)
@@ -115,5 +115,4 @@
 	thread_t *thread = (thread_t *) obj;
 
-	irq_spinlock_initialize(&thread->lock, "thread_t_lock");
 	link_initialize(&thread->rq_link);
 	link_initialize(&thread->wq_link);
@@ -197,8 +196,8 @@
 void thread_wire(thread_t *thread, cpu_t *cpu)
 {
-	irq_spinlock_lock(&thread->lock, true);
+	ipl_t ipl = interrupts_disable();
 	atomic_set_unordered(&thread->cpu, cpu);
 	thread->nomigrate++;
-	irq_spinlock_unlock(&thread->lock, true);
+	interrupts_restore(ipl);
 }
 
@@ -579,7 +578,10 @@
 void thread_migration_disable(void)
 {
+	ipl_t ipl = interrupts_disable();
+
 	assert(THREAD);
-
 	THREAD->nomigrate++;
+
+	interrupts_restore(ipl);
 }
 
@@ -587,4 +589,6 @@
 void thread_migration_enable(void)
 {
+	ipl_t ipl = interrupts_disable();
+
 	assert(THREAD);
 	assert(THREAD->nomigrate > 0);
@@ -592,4 +596,6 @@
 	if (THREAD->nomigrate > 0)
 		THREAD->nomigrate--;
+
+	interrupts_restore(ipl);
 }
 
