Index: kernel/generic/src/mm/frame.c
===================================================================
--- kernel/generic/src/mm/frame.c	(revision 2cc7f1601bf37a38c6fbe566c6f941f3ffef337e)
+++ kernel/generic/src/mm/frame.c	(revision 692be1ae416d773be35a842131ca027484d54344)
@@ -1086,4 +1086,9 @@
 #endif
 		
+		/*
+		 * Since the mem_avail_mtx is an active mutex, we need to disable interrupts
+		 * to prevent deadlock with TLB shootdown.
+		 */
+		ipl_t ipl = interrupts_disable();
 		mutex_lock(&mem_avail_mtx);
 		
@@ -1098,4 +1103,5 @@
 		
 		mutex_unlock(&mem_avail_mtx);
+		interrupts_restore(ipl);
 		
 #ifdef CONFIG_DEBUG
@@ -1161,4 +1167,11 @@
 	 * Signal that some memory has been freed.
 	 */
+
+	
+	/*
+	 * Since the mem_avail_mtx is an active mutex, we need to disable interrupts
+	 * to prevent deadlock with TLB shootdown.
+	 */
+	ipl_t ipl = interrupts_disable();
 	mutex_lock(&mem_avail_mtx);
 	if (mem_avail_req > 0)
@@ -1170,4 +1183,5 @@
 	}
 	mutex_unlock(&mem_avail_mtx);
+	interrupts_restore(ipl);
 	
 	if (!(flags & FRAME_NO_RESERVE))
