From: Alexander Egorenkov Date: Wed, 30 Jun 2021 15:12:25 +0000 (+0200) Subject: s390/boot: move all linker symbol declarations from c to h files X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=7fadcc078785416b1e2423fc624e054bb5a6e3b0;p=linux.git s390/boot: move all linker symbol declarations from c to h files To prevent multiple incompatible declarations of symbols and to catch such mistakes at compile time. Signed-off-by: Alexander Egorenkov Acked-by: Heiko Carstens Acked-by: Vasily Gorbik Signed-off-by: Heiko Carstens --- diff --git a/arch/s390/boot/boot.h b/arch/s390/boot/boot.h index ae04e1c93764c..937dbdd0ef435 100644 --- a/arch/s390/boot/boot.h +++ b/arch/s390/boot/boot.h @@ -8,7 +8,7 @@ #ifndef __ASSEMBLY__ -#include +#include void startup_kernel(void); unsigned long detect_memory(void); @@ -22,11 +22,19 @@ void print_pgm_check_info(void); unsigned long get_random_base(unsigned long safe_addr); void __printf(1, 2) decompressor_printk(const char *fmt, ...); +/* Symbols defined by linker scripts */ extern const char kernel_version[]; extern unsigned long memory_limit; extern unsigned long vmalloc_size; extern int vmalloc_size_set; extern int kaslr_enabled; +extern char __boot_data_start[], __boot_data_end[]; +extern char __boot_data_preserved_start[], __boot_data_preserved_end[]; +extern char _sdma[], _edma[]; +extern char _stext_dma[], _etext_dma[]; +extern struct exception_table_entry _start_dma_ex_table[]; +extern struct exception_table_entry _stop_dma_ex_table[]; +extern char _decompressor_syms_start[], _decompressor_syms_end[]; unsigned long read_ipl_report(unsigned long safe_offset); diff --git a/arch/s390/boot/compressed/decompressor.c b/arch/s390/boot/compressed/decompressor.c index 37a4a8d33c6c5..e27c2140d6206 100644 --- a/arch/s390/boot/compressed/decompressor.c +++ b/arch/s390/boot/compressed/decompressor.c @@ -23,11 +23,6 @@ #define memmove memmove #define memzero(s, n) memset((s), 0, (n)) -/* Symbols defined by linker scripts */ -extern char _end[]; -extern unsigned char _compressed_start[]; -extern unsigned char _compressed_end[]; - #ifdef CONFIG_KERNEL_BZIP2 #define BOOT_HEAP_SIZE 0x400000 #elif CONFIG_KERNEL_ZSTD diff --git a/arch/s390/boot/compressed/decompressor.h b/arch/s390/boot/compressed/decompressor.h index 41f0ad97a4db2..a59f75c5b0490 100644 --- a/arch/s390/boot/compressed/decompressor.h +++ b/arch/s390/boot/compressed/decompressor.h @@ -26,7 +26,12 @@ struct vmlinux_info { unsigned long rela_dyn_end; }; +/* 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 */ diff --git a/arch/s390/boot/pgm_check_info.c b/arch/s390/boot/pgm_check_info.c index 3a46abed2549a..7126a1b3293de 100644 --- a/arch/s390/boot/pgm_check_info.c +++ b/arch/s390/boot/pgm_check_info.c @@ -29,7 +29,6 @@ static char *symstart(char *p) return p + 1; } -extern char _decompressor_syms_start[], _decompressor_syms_end[]; static noinline char *findsym(unsigned long ip, unsigned short *off, unsigned short *len) { /* symbol entries are in a form "10000 c4 startup\0" */ diff --git a/arch/s390/boot/startup.c b/arch/s390/boot/startup.c index d0cf21641e3a9..793d1599825d3 100644 --- a/arch/s390/boot/startup.c +++ b/arch/s390/boot/startup.c @@ -13,8 +13,6 @@ #include "compressed/decompressor.h" #include "boot.h" -extern char __boot_data_start[], __boot_data_end[]; -extern char __boot_data_preserved_start[], __boot_data_preserved_end[]; unsigned long __bootdata_preserved(__kaslr_offset); unsigned long __bootdata_preserved(VMALLOC_START); unsigned long __bootdata_preserved(VMALLOC_END); @@ -35,10 +33,6 @@ u64 __bootdata_preserved(alt_stfle_fac_list[16]); * over to the decompressed / relocated kernel via the .boot.preserved.data * section. */ -extern char _sdma[], _edma[]; -extern char _stext_dma[], _etext_dma[]; -extern struct exception_table_entry _start_dma_ex_table[]; -extern struct exception_table_entry _stop_dma_ex_table[]; unsigned long __bootdata_preserved(__sdma) = __pa(&_sdma); unsigned long __bootdata_preserved(__edma) = __pa(&_edma); unsigned long __bootdata_preserved(__stext_dma) = __pa(&_stext_dma);