From 7fadcc078785416b1e2423fc624e054bb5a6e3b0 Mon Sep 17 00:00:00 2001 From: Alexander Egorenkov Date: Wed, 30 Jun 2021 17:12:25 +0200 Subject: 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 --- arch/s390/boot/boot.h | 10 +++++++++- arch/s390/boot/compressed/decompressor.c | 5 ----- arch/s390/boot/compressed/decompressor.h | 5 +++++ arch/s390/boot/pgm_check_info.c | 1 - arch/s390/boot/startup.c | 6 ------ 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/arch/s390/boot/boot.h b/arch/s390/boot/boot.h index ae04e1c93764..937dbdd0ef43 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 37a4a8d33c6c..e27c2140d620 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 41f0ad97a4db..a59f75c5b049 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 3a46abed2549..7126a1b3293d 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 d0cf21641e3a..793d1599825d 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); -- cgit v1.2.3-59-g8ed1b