diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-i386/mutex.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/include/asm-i386/mutex.h b/include/asm-i386/mutex.h index 4e5e3de1b9a6..c657d4b09f0a 100644 --- a/include/asm-i386/mutex.h +++ b/include/asm-i386/mutex.h @@ -28,7 +28,13 @@ do { \ \ __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) \ @@ -78,7 +84,13 @@ do { \ \ __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) \ |