kernel-ark/arch/s390
Martin Schwidefsky 4725c86055 s390: fix save and restore of the floating-point-control register
The FPC_VALID_MASK has been used to check the validity of the value
to be loaded into the floating-point-control register. With the
introduction of the floating-point extension facility and the
decimal-floating-point additional bits have been defined which need
to be checked in a non straight forward way. So far these bits have
been ignored which can cause an incorrect results for decimal-
floating-point operations, e.g. an incorrect rounding mode to be
set after signal return.

The static check with the FPC_VALID_MASK is replaced with a trial
load of the floating-point-control value, see test_fp_ctl.

In addition an information leak with the padding word between the
floating-point-control word and the floating-point registers in
the s390_fp_regs is fixed.

Reported-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Reviewed-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
..
appldata s390/appldata: make copy_from_user() invocations provably correct 2013-10-24 17:17:07 +02:00
boot s390: add support for LZ4-compressed kernel 2013-07-26 13:25:19 +02:00
crypto s390/crypto: fix aes_s390 crypto module unload problem 2013-10-24 17:17:10 +02:00
hypfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-09-05 08:50:26 -07:00
include s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
kernel s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
kvm s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
lib s390/uaccess: always run the kernel in home space 2013-10-24 17:16:57 +02:00
math-emu s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
mm s390/cmm: make copy_from_user() invocation provably correct 2013-10-24 17:17:07 +02:00
net s390/bpf,jit: fix prolog oddity 2013-10-24 17:16:59 +02:00
oprofile Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-09-11 08:36:03 -07:00
pci s390/pci: implement hibernation hooks 2013-10-24 17:16:57 +02:00
defconfig s390: update defconfig 2013-09-04 17:19:01 +02:00
Kbuild s390/pci: base support 2012-11-30 15:40:45 +01:00
Kconfig s390/bitops: use generic find bit functions / reimplement _left variant 2013-10-24 17:16:55 +02:00
Kconfig.debug Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS 2013-04-30 17:04:09 -07:00
Makefile s390: always set -march compiler option 2013-10-24 17:16:44 +02:00