s390/sclp: avoid potential usage of uninitialized value
authorVasily Gorbik <gor@linux.ibm.com>
Fri, 13 Apr 2018 16:22:14 +0000 (18:22 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 16 Apr 2018 07:10:17 +0000 (09:10 +0200)
sclp_early_printk could be used before .bss section is zeroed
(i.e. from als.c during the decompressor phase), therefore values used
by sclp_early_printk should be located in the .data section.

Another reason for that is to avoid potential initrd corruption, if some
code in future would use sclp_early_printk before initrd is moved from
possibly overlapping with .bss section region to a safe location.

Fixes: 0b0d1173d8ae ("s390/sclp: 32 bit event mask compatibility mode")
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
drivers/s390/char/sclp_early_core.c

index 5f8d9ea69ebdb87aef031dd01220bd5895e3bb89..eceba3858cefbbe0b2ce46df46751f4d53bc7122 100644 (file)
@@ -18,7 +18,7 @@ int sclp_init_state __section(.data) = sclp_init_state_uninitialized;
  * Used to keep track of the size of the event masks. Qemu until version 2.11
  * only supports 4 and needs a workaround.
  */
-bool sclp_mask_compat_mode;
+bool sclp_mask_compat_mode __section(.data);
 
 void sclp_early_wait_irq(void)
 {