\
        __asm__ __volatile__(                                           \
                LOCK    "   decl (%%eax)        \n"                     \
-                       "   js "#fail_fn"       \n"                     \
+                       "   js 2f               \n"                     \
+                       "1:                     \n"                     \
+                                                                       \
+               LOCK_SECTION_START("")                                  \
+                       "2: call "#fail_fn"     \n"                     \
+                       "   jmp 1b              \n"                     \
+               LOCK_SECTION_END                                        \
                                                                        \
                :"=a" (dummy)                                           \
                : "a" (count)                                           \
                                                                        \
        __asm__ __volatile__(                                           \
                LOCK    "   incl (%%eax)        \n"                     \
-                       "   jle "#fail_fn"      \n"                     \
+                       "   jle 2f              \n"                     \
+                       "1:                     \n"                     \
+                                                                       \
+               LOCK_SECTION_START("")                                  \
+                       "2: call "#fail_fn"     \n"                     \
+                       "   jmp 1b              \n"                     \
+               LOCK_SECTION_END                                        \
                                                                        \
                :"=a" (dummy)                                           \
                : "a" (count)                                           \
 
        /*
         * The locking fastpath is the 1->0 transition from
         * 'unlocked' into 'locked' state.
-        *
-        * NOTE: if asm/mutex.h is included, then some architectures
-        * rely on mutex_lock() having _no other code_ here but this
-        * fastpath. That allows the assembly fastpath to do
-        * tail-merging optimizations. (If you want to put testcode
-        * here, do it under #ifndef CONFIG_MUTEX_DEBUG.)
         */
        __mutex_fastpath_lock(&lock->count, __mutex_lock_slowpath);
 }
        /*
         * The unlocking fastpath is the 0->1 transition from 'locked'
         * into 'unlocked' state:
-        *
-        * NOTE: no other code must be here - see mutex_lock() .
         */
        __mutex_fastpath_unlock(&lock->count, __mutex_unlock_slowpath);
 }
  */
 int fastcall __sched mutex_lock_interruptible(struct mutex *lock)
 {
-       /* NOTE: no other code must be here - see mutex_lock() */
        return __mutex_fastpath_lock_retval
                        (&lock->count, __mutex_lock_interruptible_slowpath);
 }