summaryrefslogtreecommitdiff
path: root/arch/s390/boot/boot.h
diff options
context:
space:
mode:
authorAlexander Egorenkov <egorenar@linux.ibm.com>2021-06-30 18:17:53 +0300
committerHeiko Carstens <hca@linux.ibm.com>2021-07-27 10:39:13 +0300
commit256d78d08177d72ae27621378699c9b35231d524 (patch)
treeaa4e609c90c455d2d282948263ea8b4353331f58 /arch/s390/boot/boot.h
parent7fadcc078785416b1e2423fc624e054bb5a6e3b0 (diff)
downloadlinux-256d78d08177d72ae27621378699c9b35231d524.tar.xz
s390/boot: make stacks part of the decompressor's image
Instead of using constant addresses for the normal and dump-info stacks, allocate both stacks in the decompressor's image and load the stack register in a position-independent manner. This will allow loading and entering the decompressor at an arbitrary memory address without corrupting the content at the fixed addresses used until now for both stacks. This is one of the prerequisites for being able to kexec the decompressor from its load address without relocating it first. Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com> Acked-by: Heiko Carstens <hca@linux.ibm.com> Reviewed-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Diffstat (limited to 'arch/s390/boot/boot.h')
-rw-r--r--arch/s390/boot/boot.h9
1 files changed, 2 insertions, 7 deletions
diff --git a/arch/s390/boot/boot.h b/arch/s390/boot/boot.h
index 937dbdd0ef43..3d7d5ef4d169 100644
--- a/arch/s390/boot/boot.h
+++ b/arch/s390/boot/boot.h
@@ -2,13 +2,8 @@
#ifndef BOOT_BOOT_H
#define BOOT_BOOT_H
-#include <linux/types.h>
-
-#define BOOT_STACK_OFFSET 0x8000
-
-#ifndef __ASSEMBLY__
-
#include <asm/extable.h>
+#include <linux/types.h>
void startup_kernel(void);
unsigned long detect_memory(void);
@@ -35,8 +30,8 @@ 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[];
+extern char _stack_start[], _stack_end[];
unsigned long read_ipl_report(unsigned long safe_offset);
-#endif /* __ASSEMBLY__ */
#endif /* BOOT_BOOT_H */