diff options
Diffstat (limited to 'arch/s390/kernel/setup.c')
-rw-r--r-- | arch/s390/kernel/setup.c | 13 |
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) | |||
598 | static void __init setup_vmcoreinfo(void) | 599 | static 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 | ||