aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/setup.c')
-rw-r--r--arch/s390/kernel/setup.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
index 489d1d8d96b0..49158cb19274 100644
--- a/arch/s390/kernel/setup.c
+++ b/arch/s390/kernel/setup.c
@@ -430,10 +430,11 @@ static void __init setup_lowcore(void)
430 lc->restart_source = -1UL; 430 lc->restart_source = -1UL;
431 431
432 /* Setup absolute zero lowcore */ 432 /* Setup absolute zero lowcore */
433 memcpy_absolute(&S390_lowcore.restart_stack, &lc->restart_stack, 433 mem_assign_absolute(S390_lowcore.restart_stack, lc->restart_stack);
434 4 * sizeof(unsigned long)); 434 mem_assign_absolute(S390_lowcore.restart_fn, lc->restart_fn);
435 memcpy_absolute(&S390_lowcore.restart_psw, &lc->restart_psw, 435 mem_assign_absolute(S390_lowcore.restart_data, lc->restart_data);
436 sizeof(lc->restart_psw)); 436 mem_assign_absolute(S390_lowcore.restart_source, lc->restart_source);
437 mem_assign_absolute(S390_lowcore.restart_psw, lc->restart_psw);
437 438
438 set_prefix((u32)(unsigned long) lc); 439 set_prefix((u32)(unsigned long) lc);
439 lowcore_ptr[0] = lc; 440 lowcore_ptr[0] = lc;
@@ -598,9 +599,7 @@ static void __init setup_memory_end(void)
598static void __init setup_vmcoreinfo(void) 599static void __init setup_vmcoreinfo(void)
599{ 600{
600#ifdef CONFIG_KEXEC 601#ifdef CONFIG_KEXEC
601 unsigned long ptr = paddr_vmcoreinfo_note(); 602 mem_assign_absolute(S390_lowcore.vmcore_info, paddr_vmcoreinfo_note());
602
603 memcpy_absolute(&S390_lowcore.vmcore_info, &ptr, sizeof(ptr));
604#endif 603#endif
605} 604}
606 605