s390/boot: cleanup decompressor header files
authorAlexander Gordeev <agordeev@linux.ibm.com>
Thu, 5 May 2022 14:54:54 +0000 (16:54 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Fri, 13 Jan 2023 13:15:04 +0000 (14:15 +0100)
Move declarations to appropriate header files. Instead of cryptic
casting directly assign struct vmlinux_info type to _vmlinux_info
linker script variable - wich it actually is.

Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/boot/boot.h
arch/s390/boot/decompressor.c
arch/s390/boot/decompressor.h

index 70418389414d305874d0c3f77e9112ae58f0e670..f6e82cf7851e27d6781eea916418f42b78ffc792 100644 (file)
@@ -8,10 +8,26 @@
 
 #ifndef __ASSEMBLY__
 
+struct vmlinux_info {
+       unsigned long default_lma;
+       void (*entry)(void);
+       unsigned long image_size;       /* does not include .bss */
+       unsigned long bss_size;         /* uncompressed image .bss size */
+       unsigned long bootdata_off;
+       unsigned long bootdata_size;
+       unsigned long bootdata_preserved_off;
+       unsigned long bootdata_preserved_size;
+       unsigned long dynsym_start;
+       unsigned long rela_dyn_start;
+       unsigned long rela_dyn_end;
+       unsigned long amode31_size;
+};
+
 void startup_kernel(void);
 unsigned long detect_memory(void);
 bool is_ipl_block_dump(void);
 void store_ipl_parmblock(void);
+unsigned long read_ipl_report(unsigned long safe_offset);
 void setup_boot_command_line(void);
 void parse_boot_command_line(void);
 void verify_facilities(void);
@@ -20,6 +36,7 @@ void sclp_early_setup_buffer(void);
 void print_pgm_check_info(void);
 unsigned long get_random_base(unsigned long safe_addr);
 void __printf(1, 2) decompressor_printk(const char *fmt, ...);
+void error(char *m);
 
 /* Symbols defined by linker scripts */
 extern const char kernel_version[];
@@ -31,8 +48,11 @@ extern char __boot_data_start[], __boot_data_end[];
 extern char __boot_data_preserved_start[], __boot_data_preserved_end[];
 extern char _decompressor_syms_start[], _decompressor_syms_end[];
 extern char _stack_start[], _stack_end[];
-
-unsigned long read_ipl_report(unsigned long safe_offset);
+extern char _end[];
+extern unsigned char _compressed_start[];
+extern unsigned char _compressed_end[];
+extern struct vmlinux_info _vmlinux_info;
+#define vmlinux _vmlinux_info
 
 #endif /* __ASSEMBLY__ */
 #endif /* BOOT_BOOT_H */
index e27c2140d620689eb8270695059f6815b38b981e..4c8c82a951b70d72a62143ff7cfff5da8bcd8e8d 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/string.h>
 #include <asm/page.h>
 #include "decompressor.h"
+#include "boot.h"
 
 /*
  * gzip declarations
index f75cc31a77dd9f38ecf5fd27ee01a1733f1bb1ca..92b81d2ea35d65f3d35fbf1ad053442cfaa8da6a 100644 (file)
@@ -2,37 +2,11 @@
 #ifndef BOOT_COMPRESSED_DECOMPRESSOR_H
 #define BOOT_COMPRESSED_DECOMPRESSOR_H
 
-#include <linux/stddef.h>
-
 #ifdef CONFIG_KERNEL_UNCOMPRESSED
 static inline void *decompress_kernel(void) { return NULL; }
 #else
 void *decompress_kernel(void);
 #endif
 unsigned long mem_safe_offset(void);
-void error(char *m);
-
-struct vmlinux_info {
-       unsigned long default_lma;
-       void (*entry)(void);
-       unsigned long image_size;       /* does not include .bss */
-       unsigned long bss_size;         /* uncompressed image .bss size */
-       unsigned long bootdata_off;
-       unsigned long bootdata_size;
-       unsigned long bootdata_preserved_off;
-       unsigned long bootdata_preserved_size;
-       unsigned long dynsym_start;
-       unsigned long rela_dyn_start;
-       unsigned long rela_dyn_end;
-       unsigned long amode31_size;
-};
-
-/* Symbols defined by linker scripts */
-extern char _end[];
-extern unsigned char _compressed_start[];
-extern unsigned char _compressed_end[];
-extern char _vmlinux_info[];
-
-#define vmlinux (*(struct vmlinux_info *)_vmlinux_info)
 
 #endif /* BOOT_COMPRESSED_DECOMPRESSOR_H */