]> git.ipfire.org Git - people/arne_f/kernel.git/commit
s390/sclp: clear upper register halves in _sclp_print_early
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 6 Jul 2015 15:58:19 +0000 (17:58 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 10 Aug 2015 19:21:04 +0000 (12:21 -0700)
commitefe5471fe4845bac5a642f2e05e24718cdddd5be
tree26c937d02a896ba437e9a6d560ce891101a6ee33
parentca3e884098a49f631ad16cf2759ac8592cd4b812
s390/sclp: clear upper register halves in _sclp_print_early

commit f9c87a6f46d508eae0d9ae640be98d50f237f827 upstream.

If the kernel is compiled with gcc 5.1 and the XZ compression option
the decompress_kernel function calls _sclp_print_early in 64-bit mode
while the content of the upper register half of %r6 is non-zero.
This causes a specification exception on the servc instruction in
_sclp_servc.

The _sclp_print_early function saves and restores the upper registers
halves but it fails to clear them for the 31-bit code of the mini sclp
driver.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/s390/kernel/sclp.S