]> git.dujemihanovic.xyz Git - linux.git/commitdiff
s390/setup: generate asm offsets from struct parmarea
authorAlexander Egorenkov <egorenar@linux.ibm.com>
Wed, 21 Jul 2021 10:27:59 +0000 (12:27 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Tue, 27 Jul 2021 07:39:16 +0000 (09:39 +0200)
To reduce duplication, replace error-prone and hard-coded parameter area
offsets with auto-generated ones.

Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Acked-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/setup.h
arch/s390/kernel/asm-offsets.c

index 79d833a690b8c9e0542d383b322274f4285ff5be..9c11028a2d0b2a4161be2b8f6338655bc7e22f75 100644 (file)
 #define STARTUP_NORMAL_OFFSET  0x10000
 #define STARTUP_KDUMP_OFFSET   0x10010
 
-/* Offsets to parameters in kernel/head.S  */
-
-#define IPL_DEVICE     0x10400
-#define INITRD_START   0x10408
-#define INITRD_SIZE    0x10410
-#define OLDMEM_BASE    0x10418
-#define OLDMEM_SIZE    0x10420
-#define COMMAND_LINE   0x10480
-
 #ifndef __ASSEMBLY__
 
 #include <asm/lowcore.h>
index 77ff2130cb04529f40683e2d7ebe3584574e14fd..8a6fdf0f5e91f4bb196de04ee497e336e826a28c 100644 (file)
@@ -152,5 +152,12 @@ int main(void)
        DEFINE(__KEXEC_SHA_REGION_SIZE, sizeof(struct kexec_sha_region));
        /* sizeof kernel parameter area */
        DEFINE(__PARMAREA_SIZE, sizeof(struct parmarea));
+       /* kernel parameter area offsets */
+       DEFINE(IPL_DEVICE, PARMAREA + offsetof(struct parmarea, ipl_device));
+       DEFINE(INITRD_START, PARMAREA + offsetof(struct parmarea, initrd_start));
+       DEFINE(INITRD_SIZE, PARMAREA + offsetof(struct parmarea, initrd_size));
+       DEFINE(OLDMEM_BASE, PARMAREA + offsetof(struct parmarea, oldmem_base));
+       DEFINE(OLDMEM_SIZE, PARMAREA + offsetof(struct parmarea, oldmem_size));
+       DEFINE(COMMAND_LINE, PARMAREA + offsetof(struct parmarea, command_line));
        return 0;
 }