]> www.infradead.org Git - users/jedix/linux-maple.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:52 +0000 (12:21 -0700)
commit88b7166f0d995edd9884a4641d2a0bca77b52090
tree6a9502665305bff6d65d66475a886eed429da4aa
parent5e62f6843f4071e5cbb021c00737ebd0673ebf18
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