linux/arch/s390
Christian Borntraeger adc0b7fbf6 s390/boot/decompression: disable floating point in decompressor
my gcc 5.1 used an ldgr instruction with a register != 0,2,4,6 for
spilling/filling into a floating point register in our decompressor.

This will cause an AFP-register data exception as the decompressor
did not setup the additional floating point registers via cr0.
That causes a program check loop that looked like a hang with
one "Uncompressing Linux... " message (directly booted via kvm)
or a loop of "Uncompressing Linux... " messages (when booted via
zipl boot loader).

The offending code in my build was

   48e400:       e3 c0 af ff ff 71       lay     %r12,-1(%r10)
-->48e406:       b3 c1 00 1c             ldgr    %f1,%r12
   48e40a:       ec 6c 01 22 02 7f       clij    %r6,2,12,0x48e64e

but gcc could do spilling into an fpr at any function. We can
simply disable floating point support at that early stage.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: stable@vger.kernel.org
2015-09-29 14:45:10 +02:00
..
appldata s390: appldata: drop owner assignment from platform_drivers 2014-10-20 16:20:13 +02:00
boot s390/boot/decompression: disable floating point in decompressor 2015-09-29 14:45:10 +02:00
configs s390/configs//zfcpdump_defconfig: Remove CONFIG_MEMSTICK 2015-09-17 13:43:44 +02:00
crypto s390/crypto: add cpu feature modaliases for crypto modules 2015-07-22 09:58:02 +02:00
hypfs Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2015-07-04 19:36:06 -07:00
include s390/numa: use correct type for node_to_cpumask_map 2015-09-23 09:18:56 +02:00
kernel s390: wire up separate socketcalls system calls 2015-09-18 11:16:53 +02:00
kvm KVM: s390: Replace incorrect atomic_or with atomic_andnot 2015-09-16 17:01:06 +02:00
lib Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-03 15:46:07 -07:00
mm libnvdimm for 4.3: 2015-09-08 14:35:59 -07:00
net bpf: s390: Fix build error caused by the struct bpf_array member name changed 2015-08-11 11:49:40 -07:00
numa s390/numa: use correct type for node_to_cpumask_map 2015-09-23 09:18:56 +02:00
oprofile s390/oprofile: fix compile error 2015-07-01 09:34:39 +02:00
pci dma-mapping: consolidate dma_set_mask 2015-09-10 13:29:01 -07:00
Kbuild s390/numa: add core infrastructure 2015-08-03 18:40:25 +02:00
Kconfig kexec: split kexec_load syscall from kexec core code 2015-09-10 13:29:01 -07:00
Kconfig.debug Kconfig: consolidate CONFIG_DEBUG_STRICT_USER_COPY_CHECKS 2013-04-30 17:04:09 -07:00
Makefile s390/sclp: convert early sclp console code to C 2015-07-29 09:11:39 +02:00
defconfig s390: new default configuration 2015-06-25 09:39:25 +02:00