linux/arch/sparc/include/asm
Babu Moger 79d39e2bab arch/sparc: Introduce xchg16 for SPARC
SPARC supports 32 bit and 64 bit xchg right now. Add the support
for 16 bit (2 byte) xchg. This is required to support queued spinlock
feature which uses 2 byte xchg. This is achieved using 4 byte cas
instructions with byte manipulations.

Also re-arranged the code to call __cmpxchg_u32 inside xchg16.

Signed-off-by: Babu Moger <babu.moger@oracle.com>
Reviewed-by: Håkon Bugge <haakon.bugge@oracle.com>
Reviewed-by: Steven Sistare <steven.sistare@oracle.com>
Reviewed-by: Shannon Nelson <shannon.nelson@oracle.com>
Reviewed-by: Jane Chu <jane.chu@oracle.com>
Reviewed-by: Vijay Kumar <vijay.ac.kumar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-05-25 12:06:51 -07:00
..
agp.h
apb.h
asm-offsets.h
asm.h
asmmacro.h
atomic.h locking/atomic: Remove linux/atomic.h:atomic_fetch_or() 2016-06-16 10:48:32 +02:00
atomic_32.h locking/atomic: Remove linux/atomic.h:atomic_fetch_or() 2016-06-16 10:48:32 +02:00
atomic_64.h locking/atomic, arch/sparc: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:30 +02:00
auxio.h
auxio_32.h
auxio_64.h
backoff.h
barrier.h
barrier_32.h sparc: reuse asm-generic/barrier.h 2016-01-12 20:46:49 +02:00
barrier_64.h sparc: define __smp_xxx 2016-01-12 20:46:57 +02:00
bbc.h
bitext.h
bitops.h
bitops_32.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
bitops_64.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next 2014-06-19 07:50:07 -10:00
btext.h
bug.h
bugs.h
cache.h
cacheflush.h
cacheflush_32.h
cacheflush_64.h mm/debug_pagealloc: fix build failure on ppc and some other archs 2015-02-05 13:35:30 -08:00
cachetlb_32.h
chafsr.h
checksum.h
checksum_32.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
checksum_64.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
chmctrl.h
clock.h
cmpxchg.h
cmpxchg_32.h arch: Remove __ARCH_HAVE_CMPXCHG 2015-05-13 10:55:42 +02:00
cmpxchg_64.h arch/sparc: Introduce xchg16 for SPARC 2017-05-25 12:06:51 -07:00
compat.h sparc/compat: provide an accurate in_compat_syscall implementation 2016-03-22 15:36:02 -07:00
compat_signal.h sparc: Convert naked unsigned uses to unsigned int 2016-03-20 21:28:58 -07:00
contregs.h
cpu_type.h
cpudata.h
cpudata_32.h sparc: Replace __get_cpu_var uses 2014-08-26 13:45:55 -04:00
cpudata_64.h sparc64: Setup a scheduling domain for highest level cache. 2016-10-24 11:04:17 -07:00
current.h
dcr.h
dcu.h
delay.h
delay_32.h
delay_64.h
device.h
dma-mapping.h treewide: Consolidate get_dma_ops() implementations 2017-01-24 12:23:35 -05:00
dma.h
ebus_dma.h
ecc.h
eeprom.h
elf.h
elf_32.h
elf_64.h sparc64: separate extable_64.h, switch elf_64.h to it 2016-10-05 18:38:40 -04:00
estate.h
extable_64.h sparc64: separate extable_64.h, switch elf_64.h to it 2016-10-05 18:38:40 -04:00
fb.h
fbio.h
fhc.h
floppy.h
floppy_32.h
floppy_64.h
fpumacro.h
ftrace.h ftrace: Remove CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST from config 2016-08-24 12:15:13 +02:00
futex.h
futex_32.h
futex_64.h
hardirq.h
hardirq_32.h
hardirq_64.h
head.h
head_32.h sparc32: drop hardcoding trap_level in kgdb_trap 2016-05-20 17:55:41 -07:00
head_64.h sparc64: Fix return from trap window fill crashes. 2016-05-29 18:55:54 -07:00
hibernate.h
highmem.h
hugetlb.h sparc64: Fix mapping of 64k pages with MAP_FIXED 2017-05-17 12:07:01 -07:00
hvtramp.h
hw_irq.h
hypervisor.h sparc64: Enable sun4v dma ops to use IOMMU v2 APIs 2016-11-18 11:17:00 -08:00
ide.h
idprom.h
intr_queue.h
io-unit.h
io.h sparc: io: remove duplicate relaxed accessors on sparc32 2014-11-19 10:19:45 +01:00
io_32.h sparc32: remove stale RTC_PORT definition 2016-06-04 15:43:15 +02:00
io_64.h arch/*/io.h: Add ioremap_wt() to all architectures 2015-06-07 15:28:57 +02:00
ioctls.h
iommu.h
iommu_32.h
iommu_64.h sparc64: Initialize iommu_map_table and iommu_pool 2016-11-18 11:16:59 -08:00
irq.h
irq_32.h
irq_64.h nmi_backtrace: add more trigger_*_cpu_backtrace() methods 2016-10-07 18:46:30 -07:00
irqflags.h
irqflags_32.h
irqflags_64.h
jump_label.h locking/static_keys: Add a new static_key interface 2015-08-03 11:34:15 +02:00
Kbuild sched/cputime: Remove generic asm headers 2017-02-01 09:14:07 +01:00
kdebug.h
kdebug_32.h
kdebug_64.h sparc64:Support User Probes for sparc 2016-12-11 18:01:51 -08:00
kgdb.h sparc32: drop hardcoding trap_level in kgdb_trap 2016-05-20 17:55:41 -07:00
kmap_types.h
kprobes.h kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
ldc.h sparc/ldc: create separate ldc_unbind from ldc_free 2014-12-11 18:52:45 -08:00
leon.h
leon_amba.h
leon_pci.h
lsu.h
machines.h
mbus.h
mc146818rtc.h
mc146818rtc_32.h
mc146818rtc_64.h
mdesc.h
memctrl.h
mman.h
mmu.h
mmu_32.h
mmu_64.h sparc64 mm: Fix base TSB sizing when hugetlb pages are used 2016-07-28 21:22:12 -07:00
mmu_context.h
mmu_context_32.h
mmu_context_64.h sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
mmzone.h
msi.h
mxcc.h
nmi.h
ns87303.h
obio.h sparc: Convert naked unsigned uses to unsigned int 2016-03-20 21:28:58 -07:00
openprom.h sparc: Convert naked unsigned uses to unsigned int 2016-03-20 21:28:58 -07:00
oplib.h
oplib_32.h
oplib_64.h sparc64: Fix register corruption in top-most kernel stack frame during boot. 2014-10-24 09:52:49 -07:00
page.h
page_32.h sparc32: fix build with STRICT_MM_TYPECHECKS 2016-05-20 17:55:42 -07:00
page_64.h sparc64: Add support for 2G hugepages 2017-03-27 21:20:23 -07:00
parport.h sparc: include: asm: drop owner assignment from platform_drivers 2014-10-20 16:20:14 +02:00
pbm.h
pci.h PCI: Move pci_dma_* helpers to common code 2016-03-07 10:40:02 -06:00
pci_32.h PCI: Remove unused pci_dma_burst_advice() 2015-06-08 07:56:43 -05:00
pci_64.h PCI: Add arch_can_pci_mmap_io() on architectures which can mmap() I/O space 2017-04-18 13:02:26 -05:00
pcic.h
pcr.h
percpu.h
percpu_32.h
percpu_64.h
perf_event.h
pgalloc.h
pgalloc_32.h sparc32: drop superfluous cast in calls to __nocache_pa() 2016-05-20 17:55:42 -07:00
pgalloc_64.h sparc: get rid of superfluous __GFP_REPEAT 2016-06-24 17:23:52 -07:00
pgtable.h
pgtable_32.h sparc: Fix -Wstringop-overflow warning 2017-05-17 12:07:46 -07:00
pgtable_64.h sparc64: Fix kernel panic due to erroneous #ifdef surrounding pmd_write() 2017-04-06 12:03:29 -07:00
pgtsrmmu.h sparc: drop pte_file()-related helpers 2015-02-10 14:30:33 -08:00
pil.h
processor.h sparc: reuse asm-generic/barrier.h 2016-01-12 20:46:49 +02:00
processor_32.h sparc: remove unused wp_works_ok macro 2017-04-06 12:03:30 -07:00
processor_64.h sparc: remove unused wp_works_ok macro 2017-04-06 12:03:30 -07:00
prom.h
psr.h
ptrace.h sparc64: Fill in rest of HAVE_REGS_AND_STACK_ACCESS_API 2017-04-23 17:15:51 -07:00
qrwlock.h arch/sparc: Enable queued rwlocks for SPARC 2017-05-25 12:06:51 -07:00
ross.h
sbi.h
scratchpad.h
seccomp.h sparc: switch to using asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
sections.h
setup.h sparc: Fix -Wstringop-overflow warning 2017-05-17 12:07:46 -07:00
sfafsr.h
sfp-machine.h
sfp-machine_32.h
sfp-machine_64.h
shmparam.h
shmparam_32.h
shmparam_64.h
sigcontext.h sparc: Convert naked unsigned uses to unsigned int 2016-03-20 21:28:58 -07:00
siginfo.h
signal.h
smp.h
smp_32.h
smp_64.h sparc64: Fix non-SMP build. 2016-09-28 20:40:52 -04:00
sparsemem.h
spinlock.h
spinlock_32.h sparc32: Fix old style declaration GCC warnings 2016-10-24 11:04:18 -07:00
spinlock_64.h arch/sparc: Enable queued rwlocks for SPARC 2017-05-25 12:06:51 -07:00
spinlock_types.h arch/sparc: Enable queued rwlocks for SPARC 2017-05-25 12:06:51 -07:00
spitfire.h sparc64: recognize and support Sonoma CPU type 2016-04-21 16:43:47 -04:00
stacktrace.h
starfire.h arch: sparc: kernel: starfire.c: Remove unused function 2015-03-01 21:33:58 -08:00
string.h [sparc] unify 32bit and 64bit string.h 2016-08-07 23:55:48 -04:00
string_32.h [sparc] unify 32bit and 64bit string.h 2016-08-07 23:55:48 -04:00
string_64.h [sparc] unify 32bit and 64bit string.h 2016-08-07 23:55:48 -04:00
sunbpp.h
swift.h
switch_to.h
switch_to_32.h scripts/spelling.txt: add "swith" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
switch_to_64.h
syscall.h sparc/syscall: fix syscall_get_arch 2016-03-22 15:36:02 -07:00
syscalls.h
termbits.h
termios.h
thread_info.h
thread_info_32.h sparc: Fix execution domain removal 2015-04-12 21:03:31 +02:00
thread_info_64.h sparc64:Support User Probes for sparc 2016-12-11 18:01:51 -08:00
timer.h
timer_32.h
timer_64.h
timex.h
timex_32.h
timex_64.h
tlb.h
tlb_32.h
tlb_64.h
tlbflush.h
tlbflush_32.h
tlbflush_64.h sparc64: Multi-page size support 2017-02-23 08:30:28 -08:00
topology.h
topology_32.h
topology_64.h sparc: topology_64.h: Fix condition for including cpudata.h 2017-02-23 08:21:45 -08:00
trap_block.h sparc: Resolve conflict between sparc v9 and M7 on usage of bit 9 of TTE 2015-05-31 22:15:01 -07:00
traps.h
tsb.h sparc64: Trim page tables for 8M hugepages 2016-07-29 10:49:16 -07:00
tsunami.h
ttable.h sparc64:Support User Probes for sparc 2016-12-11 18:01:51 -08:00
turbosparc.h
uaccess.h new helper: uaccess_kernel() 2017-03-28 16:43:25 -04:00
uaccess_32.h sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
uaccess_64.h sparc: switch to RAW_COPY_USER 2017-04-02 12:53:15 -04:00
unaligned.h
unistd.h sys_sgetmask/sys_ssetmask: add CONFIG_SGETMASK_SYSCALL 2014-06-04 16:54:14 -07:00
upa.h
uprobes.h sparc64: fix for user probes in high memory 2017-02-23 08:22:28 -08:00
user.h
vaddrs.h
vga.h
viking.h
vio.h vio: create routines for inc,dec vio dring indexes 2014-12-11 18:52:45 -08:00
visasm.h sparc64: Fix userspace FPU register corruptions. 2015-08-06 19:13:25 -07:00
winmacro.h
xor.h
xor_32.h
xor_64.h