diff --git a/lib/kernel_lock.c b/lib/kernel_lock.c
index 4ebfa5a164d7d7f2e6089bbe8ca299c432ca9208..5526b46aba9457598bd091f55863da63fce26aa5 100644
--- a/lib/kernel_lock.c
+++ b/lib/kernel_lock.c
@@ -122,8 +122,10 @@ void __lockfunc _lock_kernel(const char *func, const char *file, int line)
 
 	trace_lock_kernel(func, file, line);
 
-	if (likely(!depth))
+	if (likely(!depth)) {
+		might_sleep();
 		__lock_kernel();
+	}
 	current->lock_depth = depth;
 }