kernel_optimize_test/arch/s390/kernel
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
..
vdso32
vdso64
.gitignore
asm-offsets.c KVM fixes for 3.11 2013-07-03 13:21:40 -07:00
audit.c
audit.h
base.S
cache.c s390/cache: get rid of compile warning 2013-10-24 17:17:06 +02:00
compat_audit.c
compat_exec_domain.c
compat_linux.c s390/compat,uid16: use current_cred() 2013-09-07 11:58:21 +02:00
compat_linux.h s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
compat_ptrace.h
compat_signal.c s390: fix handling of runtime instrumentation psw bit 2013-10-24 17:17:11 +02:00
compat_wrapper.S switch compat_sys_sysctl to COMPAT_SYSCALL_DEFINE 2013-05-09 14:53:20 -04:00
cpcmd.c
crash_dump.c s390: Remove zfcpdump NR_CPUS dependency 2013-10-24 17:17:04 +02:00
debug.c s390/time: correct use of store clock fast 2013-10-22 09:16:40 +02:00
diag.c
dis.c s390/kprobes: allow kprobes only on known instructions 2013-10-24 17:16:50 +02:00
dumpstack.c s390/dis: move disassembler function prototypes to proper header file 2013-10-24 17:16:48 +02:00
early.c s390/mm: do not initialize storage keys 2013-10-24 17:17:00 +02:00
ebcdic.c
entry64.S s390: fix system call restart after inferior call 2013-09-30 13:04:40 +02:00
entry.h s390: make various functions static, add declarations to header files 2013-09-07 11:58:03 +02:00
entry.S s390: fix system call restart after inferior call 2013-09-30 13:04:40 +02:00
ftrace.c s390/ftrace: prepare_ftrace_return() function call order 2013-10-24 17:17:03 +02:00
head31.S
head64.S
head_kdump.S
head.S s390/bitops: optimize set_bit() for constant values 2013-10-24 17:16:53 +02:00
ipl.c s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00
irq.c s390/irq: reduce size of external interrupt handler hash array 2013-09-09 08:57:32 +02:00
jump_label.c
kprobes.c s390/kprobes: allow kprobes only on known instructions 2013-10-24 17:16:50 +02:00
lgr.c
machine_kexec.c s390: make various functions static, add declarations to header files 2013-09-07 11:58:03 +02:00
Makefile s390/bitops: use generic find bit functions / reimplement _left variant 2013-10-24 17:16:55 +02:00
mcount64.S s390/ftrace: fix mcount adjustment 2013-05-15 13:09:09 +02:00
mcount.S s390/ftrace: fix mcount adjustment 2013-05-15 13:09:09 +02:00
module.c s390/module: fix compile warning 2013-02-28 09:37:13 +01:00
nmi.c s390/time: clock comparator revalidation 2013-08-22 12:20:08 +02:00
os_info.c Include missing linux/slab.h inclusions 2013-04-29 15:42:01 -04:00
perf_cpum_cf.c s390/irq: rework irq subclass handling 2013-09-04 17:19:13 +02:00
perf_event.c s390/perf: Remove print_hex_dump_bytes() debug output 2013-09-04 17:19:04 +02:00
pgm_check.S
process.c s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
processor.c s390: delete __cpuinit usage from all s390 files 2013-07-14 19:36:53 -04:00
ptrace.c s390: fix handling of runtime instrumentation psw bit 2013-10-24 17:17:11 +02:00
reipl64.S
reipl.S
relocate_kernel64.S
relocate_kernel.S
runtime_instr.c s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00
s390_ksyms.c KVM: s390,perf: Detect if perf samples belong to KVM host or guest 2013-06-17 17:10:23 +02:00
sclp.S s390/sclp: fix new line detection 2013-06-05 17:36:21 +02:00
setup.c s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00
signal.c s390: fix handling of runtime instrumentation psw bit 2013-10-24 17:17:11 +02:00
smp.c s390: Remove zfcpdump NR_CPUS dependency 2013-10-24 17:17:04 +02:00
stacktrace.c
suspend.c s390: make various functions static, add declarations to header files 2013-09-07 11:58:03 +02:00
swsusp_asm64.S s390/hibernate: add early resume function 2013-08-30 08:57:15 +02:00
sys_s390.c teach SYSCALL_DEFINE<n> how to deal with long long/unsigned long long 2013-03-03 22:46:22 -05:00
syscalls.S switch compat_sys_sysctl to COMPAT_SYSCALL_DEFINE 2013-05-09 14:53:20 -04:00
sysinfo.c s390: delete __cpuinit usage from all s390 files 2013-07-14 19:36:53 -04:00
time.c s390/time: return with irqs disabled from psw_idle 2013-08-28 09:19:23 +02:00
topology.c s390/topology: export cpu_topology 2013-01-08 10:57:10 +01:00
traps.c s390/dumpstack: fix call chain walking 2013-04-17 14:07:28 +02:00
vdso.c s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00
vmlinux.lds.S s390/linker skript: discard exit.data at runtime 2013-02-14 15:55:21 +01:00
vtime.c s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00