diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h
index a1c10b0c4cf02ae072eea67d312dbd21c236557f..1678a5de7013a91f08f3f352a773ff90166240f1 100644
--- a/include/linux/debug_locks.h
+++ b/include/linux/debug_locks.h
@@ -24,7 +24,7 @@ extern int debug_locks_off(void);
 	int __ret = 0;							\
 									\
 	if (unlikely(c)) {						\
-		if (debug_locks_silent || debug_locks_off())		\
+		if (debug_locks_off() && !debug_locks_silent)		\
 			WARN_ON(1);					\
 		__ret = 1;						\
 	}								\