s390/sclp: make early sclp code readable
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Tue, 24 Jan 2017 14:58:52 +0000 (15:58 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 8 Feb 2017 13:13:19 +0000 (14:13 +0100)
commitd5ab7a34f9bbad54f89b812e6b0d2d898f9433db
tree3aa685926bc40dc71fb3482b7766705ca451fa3a
parent76fdf1416eed264dee18aa7db3a32dcfa8572e03
s390/sclp: make early sclp code readable

This patch

 - unifies the old sclp early code and the sclp early printk code, so
   they can use common functions

 - makes sure all sclp early functions and variables have the same
   "sclp_early" prefix

 - converts the sclp early printk code into readable code by using
   existing data structures instead of hard coded magic arrays

 - splits the early sclp code into two files: sclp_early.c and
   sclp_early_core.c. The core file contains everything that is
   required by the kernel decompressor and may not call functions not
   contained within the core file. Otherwise the result would be a
   link error.

 - changes interrupt handling to be completely synchronous. The old
   early sclp code had a small window which allowed to receive several
   interrupts instead of exactly the single expected interrupt. This
   did hide a subtle potential bug, which is fixed with this large
   rework.

 - contains a couple of small cleanups.

Reviewed-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/boot/compressed/misc.c
arch/s390/include/asm/sclp.h
arch/s390/kernel/als.c
arch/s390/kernel/early_printk.c
arch/s390/kernel/ipl.c
arch/s390/kernel/swsusp.S
drivers/s390/char/sclp.c
drivers/s390/char/sclp.h
drivers/s390/char/sclp_early.c
drivers/s390/char/sclp_early_core.c