linux/arch/sh/include/asm
Michel Lespinasse 37a9d912b2 futex: Sanitize cmpxchg_futex_value_locked API
The cmpxchg_futex_value_locked API was funny in that it returned either
the original, user-exposed futex value OR an error code such as -EFAULT.
This was confusing at best, and could be a source of livelocks in places
that retry the cmpxchg_futex_value_locked after trying to fix the issue
by running fault_in_user_writeable().
    
This change makes the cmpxchg_futex_value_locked API more similar to the
get_futex_value_locked one, returning an error code and updating the
original value through a reference argument.
    
Signed-off-by: Michel Lespinasse <walken@google.com>
Acked-by: Chris Metcalf <cmetcalf@tilera.com>  [tile]
Acked-by: Tony Luck <tony.luck@intel.com>  [ia64]
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Tested-by: Michal Simek <monstr@monstr.eu>  [microblaze]
Acked-by: David Howells <dhowells@redhat.com> [frv]
Cc: Darren Hart <darren@dvhart.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <20110311024851.GC26122@google.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2011-03-11 12:23:08 +01:00
..
adc.h
addrspace.h sh: nommu: use 32-bit phys mode. 2010-11-04 12:32:24 +09:00
alignment.h sh: Split out the unaligned counters and user bits. 2010-01-12 16:12:25 +09:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic-grb.h sh: consolidate atomic_cmpxchg()/atomic_add_unless() definitions. 2010-01-08 17:02:17 +09:00
atomic-irq.h sh: Make the atomic functions safe for irqsoff tracing 2009-06-15 00:31:17 +09:00
atomic-llsc.h sh: consolidate atomic_cmpxchg()/atomic_add_unless() definitions. 2010-01-08 17:02:17 +09:00
atomic.h atomic_t: Cast to volatile when accessing atomic variables 2010-05-17 07:57:27 -07:00
auxvec.h
bitops-grb.h sh: Convert to generic bitops for IRQ-toggling implementation. 2008-12-22 18:42:53 +09:00
bitops-llsc.h sh: Relax inline assembly constraints 2009-01-29 11:57:09 +09:00
bitops-op32.h sh: Provide optimized non-atomic bitops for SH-2A. 2008-12-22 18:42:54 +09:00
bitops.h sh: Fix up smp_mb__xxx() memory barriers for SH-4A SMP. 2009-10-18 15:36:02 +09:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h panic: Allow warnings to set different taint flags 2010-05-19 08:36:48 +01:00
bugs.h sh: Idle loop chainsawing for SMP-based light sleep. 2009-10-16 17:20:58 +09:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h Merge branch 'for-35' of git://repo.or.cz/linux-kbuild 2010-06-01 08:55:52 -07:00
cachectl.h sh: fix sys_cacheflush error checking 2009-08-24 18:59:09 +09:00
cacheflush.h sh: Assume new page cache pages have dirty dcache lines. 2010-12-01 15:39:51 +09:00
checksum_32.h
checksum.h sh: Convert sh64 to use the generic checksum code. 2009-06-15 00:00:42 +09:00
clkdev.h ARM: 6483/1: arm & sh: factorised duplicated clkdev.c 2010-11-26 10:51:04 +00:00
clock.h sh: move sh clock.c contents to drivers/sh/clk. 2010-05-13 17:39:14 +09:00
cmpxchg-grb.h sh: fixed cmpxchg gRB version 2010-01-27 22:36:25 +09:00
cmpxchg-irq.h
cmpxchg-llsc.h sh: Fix sh4a llsc-based cmpxchg() 2009-06-11 09:31:55 +03:00
cpu-features.h sh: Support for extended ASIDs on PTEAEX-capable SH-X3 cores. 2009-03-17 17:49:49 +09:00
cputime.h
current.h sh: Convert to asm-generic/current.h. 2009-06-14 21:34:26 +09:00
delay.h
device.h sh: Runtime PM for SuperH Mobile platform bus devices 2009-08-23 18:03:17 +09:00
div64.h
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma-register.h dmaengine: shdma: separate DMA headers. 2010-03-02 11:09:04 +09:00
dma-sh.h dmaengine: shdma: separate DMA headers. 2010-03-02 11:09:04 +09:00
dma.h sh: Fix up MAX_DMA_CHANNELS definition when DMA is disabled. 2009-12-17 14:25:10 +09:00
dmabrg.h
dwarf.h sh: Optimise FDE/CIE lookup by using red-black trees 2010-02-08 11:29:15 +09:00
elf.h sh: update the FDPIC relocations. 2010-06-14 18:02:13 +09:00
emergency-restart.h
entry-macros.S sh: Remove implicit sign extension from assembler immediates 2009-08-24 17:09:53 +09:00
errno.h
fb.h
fcntl.h
fixmap.h sh: fix up an off-by-1 in the number of early ioremap fixmaps. 2010-06-21 16:23:03 +09:00
flat.h flat: fix data sections alignment 2009-05-29 08:40:02 -07:00
fpu.h sh: Move over to dynamically allocated FPU context. 2010-01-13 12:51:40 +09:00
freq.h
ftrace.h sh: Provide CALLER_ADDRx definitions even when ftrace is disabled. 2009-10-14 11:49:49 +09:00
futex-irq.h futex: Sanitize cmpxchg_futex_value_locked API 2011-03-11 12:23:08 +01:00
futex.h futex: Sanitize cmpxchg_futex_value_locked API 2011-03-11 12:23:08 +01:00
gpio.h sh: Allow GPIO chips to register IRQ mappings. 2010-10-03 03:55:39 +09:00
hardirq.h sh: Count NMIs in irq_cpustat_t. 2009-10-14 16:42:28 +09:00
hd64461.h sh: mach-hp6xx: Fix up the hp6xx build for hd64461 changes. 2009-05-20 11:27:13 +09:00
heartbeat.h sh: Prevent heartbeat from scribbling over non-LED bits. 2009-08-18 21:16:29 +09:00
hugetlb.h
hw_breakpoint.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-05-19 11:36:03 -07:00
hw_irq.h
hwblk.h sh: get rid of hwblk clock names 2010-05-11 11:48:47 +09:00
i2c-sh7760.h
io_generic.h sh: machvec IO death. 2010-11-01 09:49:04 -04:00
io_trapped.h
io.h sh: Fix up legacy PTEA space attribute mapping. 2011-01-11 15:02:59 +09:00
ioctl.h
ioctls.h TTY: Add tty ioctl to figure device node of the system console. 2010-12-16 16:18:28 -08:00
ipcbuf.h sh: Convert ipc/shm bits to their asm-generic versions. 2009-06-14 23:20:27 +09:00
irq_regs.h
irq.h sh: modify NR_IRQS from 256 to 512 2010-07-06 17:37:32 +09:00
irqflags.h Fix IRQ flag handling naming 2010-10-07 14:08:55 +01:00
Kbuild Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 2010-08-16 13:32:24 +09:00
kdebug.h sh: hw-breakpoints: Add preliminary support for SH-4A UBC. 2009-12-08 15:02:27 +09:00
kexec.h sh: convert kexec crash kernel management to LMB. 2010-05-07 14:54:55 +09:00
kgdb.h sh: Kill off kgdb's magical NMI debouncing. 2009-09-01 17:45:35 +09:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h sh: Add kprobe-based event tracer. 2010-06-14 15:16:53 +09:00
linkage.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h
machvec.h sh: Add a machvec callback for early memblock reservations. 2011-01-11 13:04:57 +09:00
mc146818rtc.h
memblock.h memblock: Introduce default allocation limit and use it to replace explicit ones 2010-08-05 12:56:07 +10:00
mman.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
mmu_context_32.h sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
mmu_context_64.h
mmu_context.h sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
mmu.h sh: Fix up NUMA build for 29-bit. 2010-03-10 16:29:48 +09:00
mmzone.h sh: bootmem refactoring. 2010-05-11 13:32:19 +09:00
module.h sh: Optimise FDE/CIE lookup by using red-black trees 2010-02-08 11:29:15 +09:00
msgbuf.h sh: Convert ipc/shm bits to their asm-generic versions. 2009-06-14 23:20:27 +09:00
mutex-llsc.h sh: Fix up T-bit error handling in SH-4A mutex fastpath. 2009-01-29 11:56:03 +09:00
mutex.h sh: Add SH-4A optimized fastpath mutex implementation. 2008-12-22 18:42:55 +09:00
page.h dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
param.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
parport.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
pci.h sh: pci: Use a generic raw spinlock for PCI config access locking. 2010-09-20 18:56:13 +09:00
percpu.h
perf_event.h irq_work: Add generic hardirq context callbacks 2010-10-18 19:58:50 +02:00
pgalloc.h sh: default to extended TLB support. 2010-01-13 19:11:14 +09:00
pgtable_32.h sh: Fix up legacy PTEA space attribute mapping. 2011-01-11 15:02:59 +09:00
pgtable_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6 2010-10-28 12:06:51 -07:00
pgtable-2level.h sh: Rename split-level pgtable headers. 2010-01-13 19:18:39 +09:00
pgtable-3level.h sh: Rename split-level pgtable headers. 2010-01-13 19:18:39 +09:00
pgtable.h sh: Fix up breakage from asm-generic/pgtable.h changes. 2011-01-14 15:46:50 +09:00
poll.h
posix_types_32.h sh: Convert to asm-generic/posix_types.h. 2009-06-14 23:16:27 +09:00
posix_types_64.h sh: Convert to asm-generic/posix_types.h. 2009-06-14 23:16:27 +09:00
posix_types.h
processor_32.h sh: constify prefetch pointers. 2011-01-11 14:39:35 +09:00
processor_64.h sh: Add kprobe-based event tracer. 2010-06-14 15:16:53 +09:00
processor.h sh: sh7372 SH4AL-DSP probe support 2011-01-13 15:20:40 +09:00
ptrace_32.h sh: correct definitions to access stack pointers 2011-01-05 16:58:19 +09:00
ptrace_64.h sh: correct definitions to access stack pointers 2011-01-05 16:58:19 +09:00
ptrace.h sh: correct definitions to access stack pointers 2011-01-05 16:58:19 +09:00
push-switch.h
reboot.h sh: machine_ops based reboot support. 2010-01-20 16:42:52 +09:00
resource.h
romimage-macros.h sh: add romimage-macros.h 2009-09-11 13:19:16 +09:00
rtc.h sh: rtc-generic support. 2009-04-27 17:34:39 +09:00
rwsem.h sh: Replace old style lock initializer 2009-11-09 10:47:40 +09:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h
sections.h sh: Change __nosave_XXX symbols to long 2011-02-15 16:24:54 +09:00
segment.h
sembuf.h sh: Convert ipc/shm bits to their asm-generic versions. 2009-06-14 23:20:27 +09:00
serial.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
setup.h sh: bootmem refactoring. 2010-05-11 13:32:19 +09:00
sfp-machine.h
sh7760fb.h
sh_bios.h sh: Kill off more unused sh_bios callbacks. 2010-01-12 15:26:11 +09:00
sh_eth.h net: allow sh_eth to get mac address through platform data 2009-10-13 03:44:05 -07:00
shmbuf.h sh: Convert ipc/shm bits to their asm-generic versions. 2009-06-14 23:20:27 +09:00
shmparam.h
sigcontext.h
siginfo.h
signal.h sh: Convert to asm-generic/signal.h. 2009-06-14 23:25:57 +09:00
siu.h sh: define DMA slaves per CPU type, remove now redundant header 2010-05-22 16:51:17 +09:00
sizes.h sh: mach-sdk7786: Add support for the FPGA SRAM. 2010-10-15 02:13:04 +09:00
smc37c93x.h
smp-ops.h sh: CPU hotplug support. 2010-04-26 19:08:55 +09:00
smp.h sh: CPU hotplug support. 2010-04-26 19:08:55 +09:00
socket.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
sockios.h
sparsemem.h
spi.h
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h locking: Convert raw_rwlock functions to arch_rwlock 2009-12-14 23:55:32 +01:00
sram.h sh: Provide a generic SRAM pool for tiny memories. 2010-10-15 02:09:00 +09:00
stacktrace.h sh: Use the generalized stacktrace ops 2009-08-13 11:50:08 +09:00
stat.h
statfs.h
string_32.h
string_64.h sh: Add SH-5 optimized memcpy()/memset()/strcpy()/strlen(). 2008-12-22 18:44:05 +09:00
string.h
suspend.h sh: SH-Mobile R-standby register save/restore 2010-02-26 15:29:26 +09:00
swab.h sh: Tidy up duplication in irq/swab/timex.h. 2009-06-14 23:21:54 +09:00
syscall_32.h sh: Add ftrace syscall tracing support 2009-07-06 20:16:33 +09:00
syscall_64.h sh: Fix up spurious syscall restarting. 2009-01-29 11:56:03 +09:00
syscall.h tracing: Unify arch_syscall_addr() implementations 2010-02-17 13:07:21 +01:00
syscalls_32.h SH: Add missing consts to sys_execve() declaration 2010-10-07 14:08:52 +01:00
syscalls_64.h Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
syscalls.h Add generic sys_olduname() 2010-03-12 15:52:32 -08:00
system_32.h sh: nommu: Support building without an uncached mapping. 2010-11-04 12:46:19 +09:00
system_64.h sh: nommu: Support building without an uncached mapping. 2010-11-04 12:46:19 +09:00
system.h sh: nommu: Support building without an uncached mapping. 2010-11-04 12:46:19 +09:00
termbits.h sh: Convert to asm-generic/termbits.h and termios.h. 2009-06-14 23:17:57 +09:00
termios.h sh: Convert to asm-generic/termbits.h and termios.h. 2009-06-14 23:17:57 +09:00
thread_info.h add descriptive comment for TIF_MEMDIE task flag declaration. 2010-05-14 11:13:27 +02:00
timex.h sh: Only provide a PCLK definition for legacy CPG CPUs. 2009-12-29 11:09:30 +09:00
tlb_64.h
tlb.h sh: Split out MMUCR.URB based entry wiring in to shared helper. 2010-01-19 15:20:35 +09:00
tlbflush.h sh: Provide a global TLB flush for U/I-TLB clear. 2010-07-02 15:44:09 +09:00
topology.h sh: Fix up cpumask_of_pcibus() for the NUMA build. 2010-03-02 15:54:47 +09:00
types.h sh: Add register alignment helpers for shared flushers. 2009-08-15 01:57:36 +09:00
uaccess_32.h
uaccess_64.h
uaccess.h
ucontext.h sh: Switch to asm-generic versions for identical headers. 2009-06-14 23:26:48 +09:00
unaligned-sh4a.h sh: Tidy up SH-4A unaligned load support. 2010-12-24 19:19:23 +09:00
unaligned.h sh: Convert to asm-generic/unaligned.h. 2009-06-14 23:24:43 +09:00
uncached.h sh: nommu: Support building without an uncached mapping. 2010-11-04 12:46:19 +09:00
unistd_32.h sh: wire up accept4 syscall (non-multiplexed path) 2010-12-14 17:58:10 +09:00
unistd_64.h sh: wire up fanotify/prlimit64 syscalls. 2010-08-16 13:51:18 +09:00
unistd.h
unwinder.h sh: unwinder: Introduce UNWINDER_BUG() and UNWINDER_BUG_ON() 2009-08-21 13:02:44 +01:00
user.h
vga.h
vmlinux.lds.h sh64: fix up memory offset calculation. 2010-02-12 15:41:45 +09:00
watchdog.h sh: Mass ctrl_in/outX to __raw_read/writeX conversion. 2010-01-26 12:58:40 +09:00
xor.h