git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'x86-spinlocks-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git]
/
arch
/
x86
/
include
/
asm
/
rwsem.h
diff --git
a/arch/x86/include/asm/rwsem.h
b/arch/x86/include/asm/rwsem.h
index
df4cd32
..
2dbe4a7
100644
(file)
--- a/
arch/x86/include/asm/rwsem.h
+++ b/
arch/x86/include/asm/rwsem.h
@@
-204,13
+204,7
@@
static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
*/
static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
{
*/
static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
{
- long tmp = delta;
-
- asm volatile(LOCK_PREFIX "xadd %0,%1"
- : "+r" (tmp), "+m" (sem->count)
- : : "memory");
-
- return tmp + delta;
+ return delta + xadd(&sem->count, delta);
}
#endif /* __KERNEL__ */
}
#endif /* __KERNEL__ */