linux/arch/s390/include/asm
Heiko Carstens 5ebf250dab s390: fix handling of runtime instrumentation psw bit
Fix the following bugs:
- When returning from a signal the signal handler copies the saved psw mask
  from user space and uses parts of it. Especially it restores the RI bit
  unconditionally. If however the machine doesn't support RI, or RI is
  disabled for the task, the last lpswe instruction which returns to user
  space will generate a specification exception.
  To fix this check if the RI bit is allowed to be set and kill the task
  if not.
- In the compat mode signal handler code the RI bit of the psw mask gets
  propagated to the mask of the return psw: if user space enables RI in the
  signal handler, RI will also be enabled after the signal handler is
  finished.
  This is a different behaviour than with 64 bit tasks. So change this to
  match the 64 bit semantics, which restores the original RI bit value.
- Fix similar oddities within the ptrace code as well.

Reviewed-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2013-10-24 17:17:11 +02:00
..
airq.h s390/airq: introduce adapter interrupt vector helper 2013-08-22 12:20:02 +02:00
appldata.h s390/appldata: change return value of appldata_asm 2012-09-26 15:45:15 +02:00
asm-offsets.h
atomic.h s390/atomic: use 'unsigned int' instead of 'unsigned long' for atomic_*_mask() 2013-10-24 17:17:02 +02:00
barrier.h s390/barrier: convert mb() to define again 2013-02-14 15:55:11 +01:00
bitops.h s390/bitops: rename find_first_bit_left() to find_first_bit_inv() 2013-10-24 17:16:56 +02:00
bug.h
bugs.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cache.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cacheflush.h module: undo module RONX protection correctly. 2011-05-19 16:55:26 +09:30
ccwdev.h s390/cio: ccw_device_force_console don't use static variable 2013-04-17 14:07:31 +02:00
ccwgroup.h s390/ccwgroup: allow drivers to call set_{on,off}line 2012-11-23 11:14:35 +01:00
checksum.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
chpid.h UAPI Disintegration 2012-10-09 2012-10-09 14:18:10 +02:00
cio.h s390/hibernate: add early resume function 2013-08-30 08:57:15 +02:00
clp.h s390/pci: cleanup clp page allocation 2013-02-14 15:55:16 +01:00
cmb.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
cmpxchg.h s390/cmpxchg,percpu: implement cmpxchg_double() 2012-09-26 15:45:25 +02:00
compat.h s390: fix handling of runtime instrumentation psw bit 2013-10-24 17:17:11 +02:00
cpcmd.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cpu_mf.h Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-03-11 07:54:29 -07:00
cpu.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cputime.h vtime: Describe overriden functions in dedicated arch headers 2013-08-14 17:14:53 +02:00
crw.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
css_chars.h s390/css_chars: remove superfluous ifdef 2012-10-09 14:17:00 +02:00
ctl_reg.h s390: cleanup and add sanity checks to control register macros 2013-10-24 17:16:59 +02:00
current.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
debug.h s390/s390dbf: add debug_level_enabled() function 2013-10-24 17:16:53 +02:00
delay.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
device.h
diag.h [S390] replace diag10() with diag10_range() function 2011-05-10 17:13:43 +02:00
dis.h s390/kprobes: allow kprobes only on known instructions 2013-10-24 17:16:50 +02:00
div64.h
dma-mapping.h s390/dma: remove gratuitous brackets 2013-06-26 21:10:26 +02:00
dma.h s390/pci: define isa_dma_bridge_buggy 2013-01-08 10:57:09 +01:00
eadm.h s390/scm: process availability 2013-03-07 09:52:24 +01:00
ebcdic.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
elf.h s390: system call path micro optimization 2013-04-26 09:07:05 +02:00
emergency-restart.h
etr.h s390/etr,stp: use -EOPNOTSUPP instead of -ENOSYS 2012-09-26 15:45:14 +02:00
exec.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
extmem.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
facility.h s390/facility: decompose test_facility() 2013-06-26 21:10:25 +02:00
fb.h
fcx.h s390/cio: fix error-prone defines 2013-10-24 17:17:04 +02:00
ftrace.h s390/ftrace: fix mcount adjustment 2013-05-15 13:09:09 +02:00
futex.h s390/uaccess: remove pointless access_ok() checks 2013-02-28 09:37:09 +01:00
hardirq.h s390: convert interrupt handling to use generic hardirq 2013-08-22 12:20:04 +02:00
hugetlb.h s390/mm: cleanup page table definitions 2013-08-22 12:20:06 +02:00
hw_irq.h s390: convert interrupt handling to use generic hardirq 2013-08-22 12:20:04 +02:00
idals.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
io.h s390: remove virt_to_phys implementation 2013-06-26 21:10:02 +02:00
ipl.h s390: Remove unused declaration of zfcpdump_prefix_array[] 2013-10-24 17:17:05 +02:00
irq_regs.h
irq.h s390/irq: rework irq subclass handling 2013-09-04 17:19:13 +02:00
irqflags.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
isc.h s390/pci: PCI adapter interrupts for MSI/MSI-X 2012-11-30 17:47:21 +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 compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
Kbuild tracing,x86: Add a TSC trace_clock 2012-11-13 15:48:27 -05:00
kdebug.h [S390] cleanup trap handling 2011-12-27 11:27:12 +01:00
kexec.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +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: add support for pc-relative long displacement instructions 2013-09-11 15:58:52 -07:00
kvm_host.h KVM: s390: Make KVM_HVA_ERR_BAD usable on s390 2013-07-29 09:03:53 +02:00
kvm_para.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
linkage.h [S390] fix s390 assembler code alignments 2011-07-24 10:48:21 +02:00
local64.h
local.h
lowcore.h s390: add support for transactional memory 2012-09-26 15:45:02 +02:00
mathemu.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mman.h s390/mm: Fix crst upgrade of mmap with MAP_FIXED 2013-02-14 15:55:22 +01:00
mmu_context.h s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00
mmu.h KVM: s390: allow sie enablement for multi-threaded programs 2013-07-29 09:03:09 +02:00
module.h Make most arch asm/module.h files use asm-generic/module.h 2012-09-28 14:31:03 +09:30
mutex.h mutex: replace CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX with simple ifdef 2013-09-28 12:46:21 +02:00
nmi.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02: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/mm: do not initialize storage keys 2013-10-24 17:17:00 +02:00
pci_clp.h s390/pci: CLP interface 2012-11-30 15:40:47 +01:00
pci_debug.h s390/pci: debug device states 2013-04-17 14:07:35 +02:00
pci_dma.h s390/pci: DMA support 2012-11-30 17:47:23 +01:00
pci_insn.h s390/pci: cleanup function names 2013-08-22 12:20:03 +02:00
pci_io.h s390/pci: cleanup function names 2013-08-22 12:20:03 +02:00
pci.h ARM: SoC platform changes for 3.12 2013-09-06 13:30:06 -07:00
percpu.h s390/cmpxchg,percpu: implement cmpxchg_double() 2012-09-26 15:45:25 +02:00
perf_event.h KVM: s390,perf: Detect if perf samples belong to KVM host or guest 2013-06-17 17:10:23 +02:00
pgalloc.h s390/kvm: Provide function for setting the guest storage key 2013-06-26 21:10:04 +02:00
pgtable.h s390/mm,kvm: fix software dirty bits vs. kvm for old machines 2013-10-15 13:47:57 +02:00
processor.h s390: fix handling of runtime instrumentation psw bit 2013-10-24 17:17:11 +02:00
ptrace.h s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00
qdio.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
reset.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
runtime_instr.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
rwsem.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
scatterlist.h [S390] set ARCH_HAS_SG_CHAIN for s390 2010-10-25 16:10:15 +02:00
schid.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
sclp.h s390/vmcore: use vmcore for zfcpdump 2013-09-11 15:59:15 -07:00
scsw.h s390: add eadm related structures 2012-09-26 15:44:57 +02:00
seccomp.h
sections.h
segment.h
serial.h s390: convert interrupt handling to use generic hardirq 2013-08-22 12:20:04 +02:00
setup.h s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +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
shmparam.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
signal.h s390: switch to generic old sigaction() 2013-02-03 18:16:14 -05:00
sigp.h KVM: s390: Fix sigp sense handling. 2012-07-03 14:55:37 -03:00
smp.h s390: Remove zfcpdump NR_CPUS dependency 2013-10-24 17:17:04 +02:00
sparsemem.h s390/mm: remove MAX_PHYSADDR_BITS define 2012-08-08 07:32:55 -07:00
spinlock_types.h
spinlock.h s390: enable ARCH_USE_CMPXCHG_LOCKREF 2013-09-28 12:46:29 +02:00
string.h s390/string: provide asm lib functions for memcpy and memcmp 2012-09-26 15:44:50 +02:00
switch_to.h s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
syscall.h s390: system call path micro optimization 2013-04-26 09:07:05 +02:00
sysinfo.h s390/sysinfo,stsi: change return code handling 2012-09-26 15:45:12 +02:00
termios.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
thread_info.h s390: remove small stack config option 2013-04-26 09:07:08 +02:00
timex.h s390/time: correct use of store clock fast 2013-10-22 09:16:40 +02:00
tlb.h s390/mm: introduce ptep_flush_lazy helper 2013-08-22 12:20:09 +02:00
tlbflush.h s390/mm: introduce ptep_flush_lazy helper 2013-08-22 12:20:09 +02:00
topology.h s390/topology: cleanup topology code 2012-11-23 11:14:31 +01:00
types.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
uaccess.h s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00
unaligned.h
unistd.h consolidate cond_syscall and SYSCALL_ALIAS declarations 2013-03-03 22:55:19 -05:00
user.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
vdso.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
vga.h vga: compile fix, disable vga for s390 2012-11-30 17:47:28 +01:00
vtime.h vtime: Describe overriden functions in dedicated arch headers 2013-08-14 17:14:53 +02:00
vtimer.h s390/vtimer: rework virtual timer interface 2012-07-20 11:15:08 +02:00
xor.h