Index: kernel/generic/src/synch/spinlock.c
===================================================================
--- kernel/generic/src/synch/spinlock.c	(revision 712c4bac34d2d8ac8d7e35e7e48ff1c293c0ffb8)
+++ kernel/generic/src/synch/spinlock.c	(revision 79ae36ddc409577eb0da3750b3a7280e034566a2)
@@ -84,5 +84,20 @@
 		 * This conserns especially printf_lock and the
 		 * framebuffer lock.
+		 *
+		 * Any lock whose name is prefixed by "*" will be
+		 * ignored by this deadlock detection routine
+		 * as this might cause an infinite recursion.
+		 * We trust our code that there is no possible deadlock
+		 * caused by these locks (except when an exception
+		 * is triggered for instance by printf()).
+		 *
+		 * We encountered false positives caused by very
+		 * slow framebuffer interaction (especially when
+		 * run in a simulator) that caused problems with both
+		 * printf_lock and the framebuffer lock.
 		 */
+		if (lock->name[0] == '*')
+			continue;
+		
 		if (i++ > DEADLOCK_THRESHOLD) {
 			printf("cpu%u: looping on spinlock %p:%s, "
