• C
    arch/tile: allow nonatomic stores to interoperate with fast atomic syscalls · df29ccb6
    Chris Metcalf 提交于
    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: NChris Metcalf <cmetcalf@tilera.com>
    df29ccb6
intvec_32.S 51.9 KB