]> Git Repo - linux.git/commitdiff
[PATCH] i386: Use early clobbers for semaphores now
authorAndi Kleen <[email protected]>
Wed, 27 Sep 2006 19:38:56 +0000 (21:38 +0200)
committerLinus Torvalds <[email protected]>
Wed, 27 Sep 2006 21:39:51 +0000 (14:39 -0700)
The new code does clobber the result early, so make sure to tell
gcc to not put it into the same register as a input argument

Signed-off-by: Andi Kleen <[email protected]>
Cc: Andrew Morton <[email protected]>
Acked-by: Kyle McMartin <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/asm-i386/semaphore.h

index e63b6a68f04c1d976a16f91b35d93eaf4933d8b1..4e34a468c3835cc323eea52518f5c916cea79691 100644 (file)
@@ -126,7 +126,7 @@ static inline int down_interruptible(struct semaphore * sem)
                "lea %1,%%eax\n\t"
                "call __down_failed_interruptible\n"
                "2:"
-               :"=a" (result), "+m" (sem->count)
+               :"=&a" (result), "+m" (sem->count)
                :
                :"memory");
        return result;
@@ -148,7 +148,7 @@ static inline int down_trylock(struct semaphore * sem)
                "lea %1,%%eax\n\t"
                "call __down_failed_trylock\n\t"
                "2:\n"
-               :"=a" (result), "+m" (sem->count)
+               :"=&a" (result), "+m" (sem->count)
                :
                :"memory");
        return result;
This page took 0.055589 seconds and 4 git commands to generate.