linux/arch/s390/include/asm
Heiko Carstens bf3db85311 s390/cmpxchg: fix 1 and 2 byte memory accesses
When accessing a 1 or 2 byte memory operand we cannot use the
passed address since the compare and swap instruction only works
for 4 byte aligned memory operands.
Hence we calculate an aligned address so that compare and swap works
correctly. However we don't pass the calculated address to the inline
assembly. This results in incorrect memory accesses and in a
specification exception if used on non 4 byte aligned memory operands.

Since this didn't happen until now, there don't seem to be
too many users of cmpxchg on unaligned addresses.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2012-05-30 09:07:57 +02:00
..
airq.h
appldata.h
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
auxvec.h [S390] introduce vdso on s390 2008-12-25 13:38:55 +01:00
barrier.h s390/barrier: make use of fast-bcr facility 2012-05-16 14:42:45 +02:00
bitops.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02: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
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h [S390] net: provide architecture specific NET_SKB_PAD 2011-02-17 13:13:59 +01:00
cacheflush.h module: undo module RONX protection correctly. 2011-05-19 16:55:26 +09:30
ccwdev.h [S390] fix mismatch in summation of I/O IRQ statistics 2011-10-30 15:16:15 +01:00
ccwgroup.h s390/ccwgroup: remove ccwgroup_create_from_string 2012-05-16 14:42:49 +02:00
checksum.h [S390] convert/optimize csum_fold() to C 2009-09-11 10:29:43 +02:00
chpid.h UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter 2011-12-13 09:26:45 +00:00
chsc.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +02:00
cio.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
cmb.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
cmpxchg.h s390/cmpxchg: fix 1 and 2 byte memory accesses 2012-05-30 09:07:57 +02:00
compat.h compat: fix compile breakage on s390 2012-02-27 07:54:27 -08:00
cpcmd.h
cpu_mf.h [S390] Fix build errors (fallout from system.h disintegration) 2012-03-30 09:41:12 +02:00
cpu.h [S390] correct alignment of cpuid structure 2010-10-25 16:10:19 +02:00
cputime.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
crw.h [S390] cio: wait for channel report 2010-02-26 22:37:29 +01:00
ctl_reg.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
current.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
dasd.h [S390] dasd: Add support for raw ECKD access. 2011-01-05 12:47:30 +01:00
debug.h [S390] kernel: Add z/VM LGR detection 2012-03-11 11:59:29 -04:00
delay.h [S390] delay: implement ndelay 2011-05-26 09:48:25 +02:00
device.h
diag.h [S390] replace diag10() with diag10_range() function 2011-05-10 17:13:43 +02:00
div64.h
dma.h
ebcdic.h
elf.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
emergency-restart.h
errno.h
etr.h [S390] use inline assembly contraints available with gcc 3.3.3 2010-02-26 22:37:30 +01:00
exec.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
extmem.h
facility.h [S390] Fix stfle() lowcore protection problem 2012-04-11 14:28:26 +02:00
fb.h
fcntl.h
fcx.h [S390] cio: update sac values 2008-12-25 13:39:06 +01:00
ftrace.h ftrace/s390: mcount offset calculation 2011-05-16 15:05:06 -04:00
futex.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
hardirq.h [S390] irq: set __ARCH_IRQ_EXIT_IRQS_DISABLED 2012-03-11 11:59:28 -04:00
hugetlb.h [S390] Remove data execution protection 2011-05-23 10:24:28 +02:00
idals.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
io.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
ioctl.h
ioctls.h ioctl: Use asm-generic/ioctls.h on s390 (enables termiox) 2010-10-22 10:20:01 -07:00
ipcbuf.h
ipl.h [S390] kernel: Add z/VM LGR detection 2012-03-11 11:59:29 -04:00
irq_regs.h
irq.h s390/irq: split irq stats for cpu-measurement alert facilities 2012-05-23 17:06:52 +02:00
irqflags.h [S390] irqs: Do not trace arch_local_{*,irq_*} functions 2011-07-24 10:48:00 +02:00
isc.h [S390] zcrypt: Use of Thin Interrupts 2008-12-25 13:38:57 +01:00
itcw.h UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter 2011-12-13 09:26:45 +00:00
jump_label.h static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
Kbuild KVM: S390: Export kvm_virtio.h 2010-10-24 10:51:30 +02:00
kdebug.h [S390] cleanup trap handling 2011-12-27 11:27:12 +01:00
kexec.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
kmap_types.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
kprobes.h [S390] kprobes: jprobe save and restore 2011-01-05 12:47:24 +01:00
kvm_host.h KVM: Introduce kvm_memory_slot::arch and move lpage_info into it 2012-03-08 14:10:22 +02:00
kvm_para.h KVM: Add __KERNEL__ guards to exported headers 2009-09-10 10:46:48 +03:00
kvm_virtio.h KVM: S390: Add virtio hotplug add support 2010-10-24 10:51:29 +02:00
kvm.h KVM: s390: provide control registers via kvm_run 2012-03-08 14:10:18 +02:00
linkage.h [S390] fix s390 assembler code alignments 2011-07-24 10:48:21 +02:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h
lowcore.h [S390] Ensure that vmcore_info pointer is never accessed directly 2012-03-11 11:59:30 -04:00
mathemu.h
mman.h UAPI: Split trivial #if defined(__KERNEL__) && X conditionals 2011-12-13 15:07:49 +00:00
mmu_context.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
mmu.h [S390] Fix build errors (fallout from system.h disintegration) 2012-03-30 09:41:12 +02:00
module.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
monwriter.h
msgbuf.h
mutex.h [S390] mutex: Introduce arch_mutex_cpu_relax() 2011-01-05 12:47:31 +01:00
nmi.h [S390] split/move machine check handler code 2009-03-26 15:24:10 +01:00
os_info.h s390/kernel: Remove OS info init function call and diag 308 for kdump 2012-05-23 17:06:50 +02:00
page.h [S390] sparse: fix sparse warnings about missing prototypes 2011-10-30 15:16:46 +01:00
param.h [S390] Have param.h simply include <asm-generic/param.h>. 2010-01-04 09:05:58 +01:00
pci.h
percpu.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
perf_event.h [S390] perf: add support for s390x CPU counters 2012-03-23 11:13:25 +01:00
pgalloc.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
pgtable.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
poll.h
posix_types.h s390: Use generic posix_types.h 2012-02-14 12:01:29 -08:00
processor.h s390/cpu: remove cpu "capabilities" sysfs attribute 2012-05-30 09:07:30 +02:00
ptrace.h Audit: push audit success and retcode into arch ptrace.h 2012-01-17 16:16:56 -05:00
qdio.h s390/qdio: Cleanup error handling to drivers 2012-05-16 14:42:36 +02:00
qeth.h qeth: add query OSA address table support 2012-02-08 18:50:20 -05:00
reset.h [S390] kdump backend code 2011-10-30 15:16:42 +01:00
resource.h
rwsem.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
scatterlist.h [S390] set ARCH_HAS_SG_CHAIN for s390 2010-10-25 16:10:15 +02:00
schid.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
sclp.h
scsw.h [S390] cio: move scsw helper functions to header file 2009-09-11 10:29:36 +02:00
seccomp.h [S390] secure computing arch backend 2009-06-12 10:27:31 +02:00
sections.h
segment.h
sembuf.h
setup.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
sfp-machine.h
sfp-util.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
smp.h smp: Add task_struct argument to __cpu_up() 2012-04-26 12:06:09 +02:00
socket.h net: Add framework to allow sending packets with customized CRC. 2012-02-24 01:37:35 -08:00
sockios.h [S390] use generic sockios.h header file 2009-12-07 12:51:37 +01:00
sparsemem.h [S390] add support for physical memory > 4TB 2011-12-27 11:27:10 +01:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
spinlock.h [S390] sparse: fix sparse warnings about missing prototypes 2011-10-30 15:16:46 +01:00
stat.h
statfs.h add f_flags to struct statfs(64) 2010-08-09 16:48:44 -04:00
string.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
swab.h [S390] Fix compile error in swab.h 2012-04-11 14:28:26 +02:00
switch_to.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
syscall.h [S390] cleanup trap handling 2011-12-27 11:27:12 +01:00
sysinfo.h [S390] topology: move topology sysinfo code 2010-10-25 16:10:21 +02:00
tape390.h
termbits.h [S390] use generic termbits.h header file 2009-12-07 12:51:37 +01:00
termios.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
thread_info.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
timer.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
timex.h s390/time: simply Kconfig dependency 2012-05-16 14:42:44 +02:00
tlb.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
tlbflush.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
topology.h [S390] topology: increase poll frequency if change is anticipated 2011-12-27 11:27:12 +01:00
types.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
uaccess.h s390/kernel: Introduce memcpy_absolute() function 2012-05-30 09:04:49 +02:00
ucontext.h [S390] 64-bit register support for 31-bit processes 2009-10-06 10:35:10 +02:00
unaligned.h
unistd.h [S390] ipc: call generic sys_ipc demultiplexer 2011-12-27 11:27:13 +01:00
user.h
vdso.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
vtoc.h [S390] dasd: add large volume support 2009-03-26 15:24:05 +01:00
xor.h
zcrypt.h