[S390] hibernation: fix lowcore handling
Our swsusp_arch_suspend() backend implementation disables prefixing by setting the contents of the prefix register to 0. However afterwards common code functions are called which might access percpu data structures. Since the lowcore contains e.g. the percpu base pointer this isn't a good idea. So fix this by copying the hibernating cpu's lowcore to absolute address zero. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:

committed by
Martin Schwidefsky

부모
4be3bd7849
커밋
5f954c3426
@@ -210,7 +210,7 @@ static noinline __init void detect_machine_type(void)
|
||||
machine_flags |= MACHINE_FLAG_VM;
|
||||
}
|
||||
|
||||
static void early_pgm_check_handler(void)
|
||||
static __init void early_pgm_check_handler(void)
|
||||
{
|
||||
unsigned long addr;
|
||||
const struct exception_table_entry *fixup;
|
||||
@@ -222,7 +222,7 @@ static void early_pgm_check_handler(void)
|
||||
S390_lowcore.program_old_psw.addr = fixup->fixup | PSW_ADDR_AMODE;
|
||||
}
|
||||
|
||||
void setup_lowcore_early(void)
|
||||
static noinline __init void setup_lowcore_early(void)
|
||||
{
|
||||
psw_t psw;
|
||||
|
||||
|
Reference in New Issue
Block a user