linux/arch/tile/kernel
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
..
asm-offsets.c
backtrace.c arch/tile: refactor backtracing code 2011-05-02 13:49:14 -04:00
compat_signal.c arch/tile: handle rt_sigreturn() more cleanly 2010-12-17 16:59:29 -05:00
compat.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
early_printk.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
entry.S arch/tile: use a cleaner technique to enable interrupt for cpu_idle() 2011-03-01 16:20:48 -05:00
hardwall.c arch/tile: mark "hardwall" device as non-seekable 2010-11-01 15:31:42 -04:00
head_32.S arch/tile: support newer binutils assembler shift semantics 2011-03-17 14:32:06 -04:00
hvglue.lds arch/tile: Enable more sophisticated IRQ model for 32-bit chips. 2010-07-06 13:34:01 -04:00
init_task.c
intvec_32.S arch/tile: allow nonatomic stores to interoperate with fast atomic syscalls 2011-05-04 14:40:07 -04:00
irq.c tile: Use generic show_interupts() 2011-03-25 23:06:34 +01:00
machine_kexec.c arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
Makefile pci root complex: support for tile architecture 2010-11-24 13:13:49 -05:00
messaging.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
module.c arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
pci-dma.c arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
pci.c arch/tile: improve support for PCI hotplug 2011-05-04 14:39:53 -04:00
proc.c arch: tile: kernel/proc.c Removed duplicated #include 2010-08-13 08:10:16 -04:00
process.c arch/tile: support TIF_NOTIFY_RESUME 2011-05-02 18:53:35 -04:00
ptrace.c arch/tile: don't allow user code to set the PL via ptrace or signal return 2010-11-01 15:31:17 -04:00
reboot.c arch/tile: bomb raw_local_irq_ to arch_local_irq_ 2010-11-01 15:30:42 -04:00
regs_32.S arch/tile: parameterize system PLs to support KVM port 2010-10-15 15:38:09 -04:00
relocate_kernel.S
setup.c arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
signal.c arch/tile: handle rt_sigreturn() more cleanly 2010-12-17 16:59:29 -05:00
single_step.c arch/tile: support TIF_NOTIFY_RESUME 2011-05-02 18:53:35 -04:00
smp.c arch/tile: warn and retry if an IPI is not accepted by the target cpu 2011-03-01 16:20:16 -05:00
smpboot.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
stack.c arch/tile: refactor backtracing code 2011-05-02 13:49:14 -04:00
sys.c BKL: remove extraneous #include <smp_lock.h> 2010-11-17 08:59:32 -08:00
tile-desc_32.c arch/tile: refactor backtracing code 2011-05-02 13:49:14 -04:00
time.c arch/tile: fix __ndelay etc to work better 2011-03-01 16:20:04 -05:00
tlb.c
traps.c arch/tile: enable single-step support for TILE-Gx 2010-10-15 15:38:26 -04:00
vmlinux.lds.S Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2011-03-17 19:34:12 -07:00