linux/arch/microblaze/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
..
asm-compat.h microblaze: Copy ppc asm-compat.h for clean handling of constants in asm and C 2009-09-22 10:10:06 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
auxvec.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
bitops.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
bugs.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
byteorder.h microblaze: Add support for little-endian Microblaze 2010-10-21 15:51:59 +10:00
cache.h microblaze: Define correct L1_CACHE_SHIFT value 2010-05-06 11:21:59 +02:00
cacheflush.h microblaze: Fix copy_to_user_page macro 2010-08-04 10:22:31 +02:00
checksum.h microblaze: Add support for little-endian Microblaze 2010-10-21 15:51:59 +10:00
clinkage.h microblaze_v8: clinkage.h linkage.h sections.h kmap_types.h 2009-03-27 14:25:38 +01:00
cpuinfo.h microblaze: Support timer on AXI lite 2010-10-21 15:52:00 +10:00
cputable.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
cputime.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
current.h microblaze_mmu_v2: Add CURRENT_TASK for entry.S 2009-05-26 16:45:19 +02:00
delay.h microblaze_v8: delay.h, timex.h 2009-03-27 14:25:27 +01:00
device.h arch/microblaze: Move dma_mask from of_device into pdev_archdata 2010-05-22 00:10:40 -06:00
div64.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
dma-mapping.h dma-mapping: remove dma_is_consistent API 2010-08-11 08:59:21 -07:00
dma.h microblaze: Add isa_dma_bridge_buggy to dma.h 2010-05-06 11:21:58 +02:00
elf.h microblaze: Add support for little-endian Microblaze 2010-10-21 15:51:59 +10:00
emergency-restart.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
entry.h percpu: remove per_cpu__ prefix. 2009-10-29 22:34:15 +09:00
errno.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
exceptions.h microblaze: Add KGDB support 2010-08-04 10:45:17 +02:00
fb.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
fcntl.h microblaze_v8: fcntl.h sockios.h ucontext.h 2009-03-27 14:25:45 +01:00
flat.h microblaze: remove unused flat_stack_align() definition 2009-06-02 07:54:36 +02:00
ftrace.h microblaze: ftrace: Add dynamic trace support 2009-12-14 08:44:01 +01:00
futex.h futex: Sanitize cmpxchg_futex_value_locked API 2011-03-11 12:23:08 +01:00
gpio.h microblaze: support gpio_to_irq() 2010-10-21 15:51:41 +10:00
hardirq.h microblaze: use the generic ack_bad_irq implementation 2009-08-18 10:33:29 +02:00
hw_irq.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
io.h microblaze: Define empty mmiowb 2010-10-21 15:51:39 +10:00
ioctl.h microblaze_v8: ioctl support 2009-03-27 14:25:33 +01:00
ioctls.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
ipcbuf.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
irq_regs.h microblaze_v8: headers for irq 2009-03-27 14:25:35 +01:00
irq.h of/irq: Move irq_of_parse_and_map() to common code 2010-06-28 12:41:33 -07:00
irqflags.h microblaze: Fix IRQ flag handling for MSR=0 2011-02-07 19:12:04 +01:00
Kbuild microblaze: Kbuild update 2009-05-22 09:50:46 +02:00
kdebug.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
kgdb.h microblaze: Add KGDB support 2010-08-04 10:45:17 +02:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
linkage.h microblaze_v8: clinkage.h linkage.h sections.h kmap_types.h 2009-03-27 14:25:38 +01:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
memblock.h memblock: Introduce default allocation limit and use it to replace explicit ones 2010-08-05 12:56:07 +10:00
mman.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
mmu_context_mm.h microblaze_mmu_v2: Context handling - mmu_context.c/h 2009-05-26 16:45:15 +02:00
mmu_context.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
mmu.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
module.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
msgbuf.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
mutex.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
namei.h microblaze_v8: namei.h 2009-03-27 14:25:42 +01:00
page.h microblaze: Removing dead CONTIGUOUS_PAGE_ALLOC config option 2010-10-21 15:51:31 +10:00
param.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
parport.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
pci-bridge.h of/address: merge of_address_to_resource() 2010-07-05 16:14:26 -06:00
pci.h microblaze: use asm-generic/pci-dma-compat.h 2010-10-21 15:51:37 +10:00
percpu.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
pgalloc.h microblaze: Fix pmd_populate macro 2010-10-21 15:51:20 +10:00
pgtable.h microblaze: Fix pte_update function 2011-02-07 19:12:30 +01:00
poll.h microblaze_v8: pool.h socket.h 2009-03-27 14:25:44 +01:00
posix_types.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
processor.h microblaze: Remove segment.h 2010-04-01 08:38:19 +02:00
prom.h of/net: Move of_get_mac_address() to a common source file. 2010-11-01 01:08:14 -04:00
ptrace.h microblaze: Add PT_ macros for special purpose regs 2010-01-18 16:35:39 +01:00
pvr.h microblaze: Correct PVR access macros 2011-01-03 10:01:29 +01:00
registers.h microblaze_mmu_v2: Update process creation for MMU 2009-05-26 16:45:18 +02:00
resource.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h microblaze: Add seccomp support 2010-10-21 15:51:25 +10:00
sections.h microblaze_mmu_v2: Page table - ioremap - pgtable.c/h, section update 2009-05-26 16:45:16 +02:00
selfmod.h microblaze_v8: Selfmodified code 2009-03-27 14:25:15 +01:00
sembuf.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
serial.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
setup.h microblaze: remove early printk uarlite console dependency from header 2010-10-21 15:51:48 +10:00
shmbuf.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
shmparam.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
sigcontext.h microblaze_v8: sigcontext.h siginfo.h 2009-03-27 14:25:40 +01:00
siginfo.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
signal.h microblaze: clean up signal handling 2009-07-06 10:26:57 +02:00
socket.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
sockios.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
stat.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
statfs.h microblaze_v8: stats headers 2009-03-27 14:25:39 +01:00
string.h microblaze: Guard __HAVE_ARCH macros with __KERNEL__ in string.h 2009-05-21 15:56:08 +02:00
swab.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
syscall.h microblaze: Implement include/asm/syscall.h. 2009-09-21 14:29:21 +02:00
syscalls.h microblaze: use generic syscalls.h 2009-07-06 10:26:59 +02:00
system.h Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2010-08-05 08:59:22 -07:00
termbits.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
termios.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
thread_info.h microblaze: remove unused TIF_KERNEL_TRACE 2010-10-21 15:51:26 +10:00
timex.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
tlb.h microblaze: Fix missing pagemap.h 2011-01-16 14:29:21 +01:00
tlbflush.h microblaze: Fix TLB macros 2010-04-01 08:38:24 +02:00
topology.h of: Provide default of_node_to_nid() implementation. 2010-07-30 00:03:58 -06:00
types.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
uaccess.h microblaze: Fix __copy_to/from_user_inatomic macros 2010-08-02 10:44:03 +02:00
ucontext.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
unaligned.h microblaze: Add support for little-endian Microblaze 2010-10-21 15:51:59 +10:00
unistd.h microblaze: wire up prlimit64 and fanotify* syscalls 2010-10-21 15:51:38 +10:00
unwind.h microblaze: Add stack unwinder 2010-08-04 10:22:35 +02:00
user.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
vga.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
xor.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00