git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
sparc64
/
kernel
/
semaphore.c
diff --git
a/arch/sparc64/kernel/semaphore.c
b/arch/sparc64/kernel/semaphore.c
index
63496c4
..
a809e63
100644
(file)
--- a/
arch/sparc64/kernel/semaphore.c
+++ b/
arch/sparc64/kernel/semaphore.c
@@
-32,8
+32,9
@@
static __inline__ int __sem_update_count(struct semaphore *sem, int incr)
" add %1, %4, %1\n"
" cas [%3], %0, %1\n"
" cmp %0, %1\n"
" add %1, %4, %1\n"
" cas [%3], %0, %1\n"
" cmp %0, %1\n"
+" membar #StoreLoad | #StoreStore\n"
" bne,pn %%icc, 1b\n"
" bne,pn %%icc, 1b\n"
-"
membar #StoreLoad | #StoreStore
\n"
+"
nop
\n"
: "=&r" (old_count), "=&r" (tmp), "=m" (sem->count)
: "r" (&sem->count), "r" (incr), "m" (sem->count)
: "cc");
: "=&r" (old_count), "=&r" (tmp), "=m" (sem->count)
: "r" (&sem->count), "r" (incr), "m" (sem->count)
: "cc");
@@
-71,8
+72,9
@@
void up(struct semaphore *sem)
" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" addcc %%g7, 1, %%g0\n"
" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" addcc %%g7, 1, %%g0\n"
+" membar #StoreLoad | #StoreStore\n"
" ble,pn %%icc, 3f\n"
" ble,pn %%icc, 3f\n"
-"
membar #StoreLoad | #StoreStore
\n"
+"
nop
\n"
"2:\n"
" .subsection 2\n"
"3: mov %0, %%g1\n"
"2:\n"
" .subsection 2\n"
"3: mov %0, %%g1\n"
@@
-128,8
+130,9
@@
void __sched down(struct semaphore *sem)
" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" cmp %%g7, 1\n"
" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" cmp %%g7, 1\n"
+" membar #StoreLoad | #StoreStore\n"
" bl,pn %%icc, 3f\n"
" bl,pn %%icc, 3f\n"
-"
membar #StoreLoad | #StoreStore
\n"
+"
nop
\n"
"2:\n"
" .subsection 2\n"
"3: mov %0, %%g1\n"
"2:\n"
" .subsection 2\n"
"3: mov %0, %%g1\n"
@@
-233,8
+236,9
@@
int __sched down_interruptible(struct semaphore *sem)
" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" cmp %%g7, 1\n"
" cmp %%g1, %%g7\n"
" bne,pn %%icc, 1b\n"
" cmp %%g7, 1\n"
+" membar #StoreLoad | #StoreStore\n"
" bl,pn %%icc, 3f\n"
" bl,pn %%icc, 3f\n"
-"
membar #StoreLoad | #StoreStore
\n"
+"
nop
\n"
"2:\n"
" .subsection 2\n"
"3: mov %2, %%g1\n"
"2:\n"
" .subsection 2\n"
"3: mov %2, %%g1\n"