]> git.baikalelectronics.ru Git - kernel.git/commitdiff
s390/ipl: make parameter area accessible via struct parmarea
authorHeiko Carstens <hca@linux.ibm.com>
Fri, 7 May 2021 17:12:39 +0000 (19:12 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Mon, 7 Jun 2021 15:06:59 +0000 (17:06 +0200)
Since commit 9a965ea95135 ("s390/kexec_file: Simplify parmarea
access") we have struct parmarea which describes the layout of the
kernel parameter area.

Make the kernel parameter area available as global variable parmarea
of type struct parmarea, which allows to easily access its members.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/boot/head.S
arch/s390/include/asm/setup.h
arch/s390/kernel/asm-offsets.c

index dacb7813f98257a2811062d98afe14c197824f17..51693cfb65c2c3b35c9fcd87d6e19e6404876462 100644 (file)
@@ -401,6 +401,7 @@ SYM_CODE_END(startup_pgm_check_handler)
 # Must be keept in sync with struct parmarea in setup.h
 #
        .org    PARMAREA
+SYM_DATA_START(parmarea)
        .quad   0                       # IPL_DEVICE
        .quad   0                       # INITRD_START
        .quad   0                       # INITRD_SIZE
@@ -411,6 +412,8 @@ SYM_CODE_END(startup_pgm_check_handler)
        .org    COMMAND_LINE
        .byte   "root=/dev/ram0 ro"
        .byte   0
+       .org    PARMAREA+__PARMAREA_SIZE
+SYM_DATA_END(parmarea)
 
        .org    EARLY_SCCB_OFFSET
        .fill   4096
index 3e388fa208d4f477851d096c328254054bd357f7..29baab03f09199a49f0a525183960c8d2a8bea2d 100644 (file)
@@ -78,6 +78,8 @@ struct parmarea {
        char command_line[ARCH_COMMAND_LINE_SIZE];      /* 0x10480 */
 };
 
+extern struct parmarea parmarea;
+
 extern unsigned int zlib_dfltcc_support;
 #define ZLIB_DFLTCC_DISABLED           0
 #define ZLIB_DFLTCC_FULL               1
index b4ca7cc011cb49bb708ad8a968180e9a0d52c82d..f53605a3dfcdcb5335effc63dcff68c7bdfe13cc 100644 (file)
@@ -15,6 +15,7 @@
 #include <asm/idle.h>
 #include <asm/gmap.h>
 #include <asm/nmi.h>
+#include <asm/setup.h>
 #include <asm/stacktrace.h>
 
 int main(void)
@@ -155,5 +156,7 @@ int main(void)
        OFFSET(__KEXEC_SHA_REGION_START, kexec_sha_region, start);
        OFFSET(__KEXEC_SHA_REGION_LEN, kexec_sha_region, len);
        DEFINE(__KEXEC_SHA_REGION_SIZE, sizeof(struct kexec_sha_region));
+       /* sizeof kernel parameter area */
+       DEFINE(__PARMAREA_SIZE, sizeof(struct parmarea));
        return 0;
 }