android_kernel_asus_sm8350/arch/tile/include/asm
Chris Metcalf 47d632f9f8 arch/tile: optimize get_user/put_user and friends
Use direct load/store for the get_user/put_user.

Previously, we would call out to a helper routine that would do the
appropriate thing and then return, handling the possible exception
internally.  Now we inline the load or store, along with a "we succeeded"
indication in a register; if the load or store faults, we write a
"we failed" indication into the same register and then return to the
following instruction.  This is more efficient and gives us more compact
code, as well as being more in line with what other architectures do.

The special futex assembly source file for TILE-Gx also disappears in
this change; we just use the same inlining idiom there as well, putting
the appropriate atomic operations directly into futex_atomic_op_inuser()
(and thus into the FUTEX_WAIT function).

The underlying atomic copy_from_user, copy_to_user functions were
renamed using the (cryptic) x86 convention as copy_from_user_ll and
copy_to_user_ll.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
2012-05-25 12:48:23 -04:00
..
asm-offsets.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
atomic_32.h arch/tile: optimize get_user/put_user and friends 2012-05-25 12:48:23 -04:00
atomic_64.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
atomic.h tile: fix multiple build failures from system.h dismantle 2012-04-02 11:57:37 -04:00
auxvec.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
backtrace.h arch/tile: refactor backtracing code 2011-05-02 13:49:14 -04:00
barrier.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
bitops_32.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
bitops_64.h arch/tile: fix gcc 4.6 warnings in <asm/bitops_64.h> 2012-04-02 12:00:15 -04:00
bitops.h arch/tile: finish enabling support for TILE-Gx 64-bit chip 2011-05-12 15:52:12 -04:00
bitsperlong.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
byteorder.h arch/tile: support building big-endian kernel 2012-05-25 12:48:22 -04:00
cache.h arch/tile: catch up with section naming convention in 2.6.35 2011-03-01 16:18:52 -05:00
cacheflush.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
checksum.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
cmpxchg.h tile: fix multiple build failures from system.h dismantle 2012-04-02 11:57:37 -04:00
compat.h [PATCH v3] ipc: provide generic compat versions of IPC syscalls 2012-03-15 13:13:38 -04:00
current.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
delay.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
dma-mapping.h tile,mn10300: add device parameter to dma_cache_sync() 2011-05-04 14:41:36 -04:00
dma.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
edac.h drivers/edac: provide support for tile architecture 2011-03-10 13:30:14 -05:00
elf.h arch/tile: support building big-endian kernel 2012-05-25 12:48:22 -04:00
exec.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
fixmap.h arch/tile: remove useless set_fixmap_nocache() macro 2011-06-15 10:35:38 -04:00
ftrace.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
futex.h arch/tile: optimize get_user/put_user and friends 2012-05-25 12:48:23 -04:00
hardirq.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
hardwall.h arch/tile: more /proc and /sys file support 2011-05-27 10:39:05 -04:00
highmem.h highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
homecache.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
hugetlb.h arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
hv_driver.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
hw_irq.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
ide.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
io.h tile: don't panic on iomap 2011-12-04 16:00:07 +02:00
irq.h arch/tile: use 0 for IRQ_RESCHEDULE instead of 1 2012-04-02 12:00:16 -04:00
irqflags.h arch/tile: use interrupt critical sections less 2012-05-25 12:48:20 -04:00
Kbuild arch/tile: add the <arch> headers to the set of installed kernel headers 2011-11-03 16:58:48 -04:00
kexec.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
kmap_types.h arch/tile: complete migration to new kmap_atomic scheme 2010-11-01 15:30:36 -04:00
linkage.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
memprof.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
mman.h arch/tile: provide a definition of MAP_STACK 2010-10-14 15:09:02 -04:00
mmu_context.h tile: replace mm->cpu_vm_mask with mm_cpumask() 2011-05-04 14:41:44 -04:00
mmu.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
page.h arch/tile: kernel-related cleanups from removing static page size 2011-05-04 14:41:13 -04:00
pci.h arch/tile: fix a couple of functions that should be __init 2012-04-25 12:45:26 -04:00
percpu.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
pgalloc.h arch/tile: support 4KB page size as well as 64KB 2011-03-10 13:17:53 -05:00
pgtable_32.h arch/tile: allow building Linux with transparent huge pages enabled 2012-05-25 12:48:21 -04:00
pgtable_64.h arch/tile: allow building Linux with transparent huge pages enabled 2012-05-25 12:48:21 -04:00
pgtable.h arch/tile: allow building Linux with transparent huge pages enabled 2012-05-25 12:48:21 -04:00
processor.h arch/tile: support signal "exception-trace" hook 2011-05-19 22:55:59 -04:00
ptrace.h ptrace: unify show_regs() prototype 2011-07-26 16:49:43 -07:00
sections.h arch/tile: Miscellaneous cleanup changes. 2010-07-06 13:41:51 -04:00
setup.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
sigcontext.h arch/tile: avoid ISO namespace pollution with <asm/sigcontext.h> 2011-11-03 16:58:36 -04:00
sigframe.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
siginfo.h arch/tile: Fix a couple of issues with the COMPAT code for TILE-Gx. 2010-08-13 08:32:21 -04:00
signal.h UAPI: Split trivial #if defined(__KERNEL__) && X conditionals 2011-12-13 15:07:49 +00:00
smp.h smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
spinlock_32.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
spinlock_64.h arch/tile: use atomic exchange in arch_write_unlock() 2012-04-02 12:13:49 -04:00
spinlock_types.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
spinlock.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
stack.h arch/tile: various bugs in stack backtracer 2012-04-02 12:12:45 -04:00
stat.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00
string.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
swab.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00
switch_to.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
syscall.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
syscalls.h arch/tile: Use <asm-generic/syscalls.h> 2010-10-14 14:34:33 -04:00
thread_info.h arch/tile: fix up some issues in calling do_work_pending() 2012-05-16 16:01:16 -04:00
tile-desc_32.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc_64.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
tile-desc.h arch/tile: factor out <arch/opcode.h> header 2011-11-03 16:58:54 -04:00
timex.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
tlb.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
tlbflush.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
topology.h arch/tile: disable SD_WAKE_AFFINE flag on CPU/NODE scheduling domain 2011-05-04 14:40:16 -04:00
traps.h arch/tile: work around a hardware issue with the return-address stack 2012-04-02 12:12:48 -04:00
uaccess.h arch/tile: optimize get_user/put_user and friends 2012-05-25 12:48:23 -04:00
unaligned.h Disintegrate asm/system.h for Tile 2012-03-28 18:30:03 +01:00
unistd.h arch/tile: cleanups for tilegx compat mode 2011-05-19 22:56:13 -04:00
user.h arch/tile: core support for Tilera 32-bit chips. 2010-06-04 17:11:18 -04:00
vga.h arch/tile: various header improvements for building drivers 2011-05-04 14:40:54 -04:00