linux/arch/tile/lib
Chris Metcalf df29ccb6c0 arch/tile: allow nonatomic stores to interoperate with fast atomic syscalls
This semantic was already true for atomic operations within the kernel,
and this change makes it true for the fast atomic syscalls (__NR_cmpxchg
and __NR_atomic_update) as well.  Previously, user-space had to use
the fast atomic syscalls exclusively to update memory, since raw stores
could lose a race with the atomic update code even when the atomic update
hadn't actually modified the value.

With this change, we no longer write back the value to memory if it
hasn't changed.  This allows certain types of idioms in user space to
work as expected, e.g. "atomic exchange" to acquire a spinlock, followed
by a raw store of zero to release the lock.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2011-05-04 14:40:07 -04:00
..
atomic_32.c arch/tile: fix futex sanitization definition/prototype mismatch 2011-03-20 00:08:21 -04:00
atomic_asm_32.S arch/tile: allow nonatomic stores to interoperate with fast atomic syscalls 2011-05-04 14:40:07 -04:00
cacheflush.c arch/tile: enhance existing finv_buffer_remote() routine 2011-03-01 16:21:06 -05:00
checksum.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
cpumask.c arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
delay.c arch/tile: fix __ndelay etc to work better 2011-03-01 16:20:04 -05:00
exports.c arch/tile: export some additional module symbols 2011-03-01 16:21:12 -05:00
Makefile arch/tile: use extended assembly to inline __mb_incoherent() 2011-03-01 16:20:54 -05:00
memchr_32.c arch/tile: fix memchr() not to dereference memory for zero length 2010-11-24 13:57:42 -05:00
memcpy_32.S arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
memcpy_tile64.c arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
memmove.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
memset_32.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
spinlock_32.c arch/tile: fix deadlock bugs in rwlock implementation 2011-03-10 16:10:41 -05:00
spinlock_common.h arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
strchr_32.c arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
strlen_32.c arch/tile: minor whitespace/naming changes for string support files 2010-10-15 15:38:54 -04:00
uaccess.c arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
usercopy_32.S arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00