s390/smp: make absolute lowcore / cpu restart parameter accesses more robust
[deliverable/linux.git] / arch / s390 / kernel / setup.c
index 489d1d8d96b068f63b61886ee3c55d50f52b3913..49158cb19274d95fbf6d2965aca58ad91f813938 100644 (file)
@@ -430,10 +430,11 @@ static void __init setup_lowcore(void)
        lc->restart_source = -1UL;
 
        /* Setup absolute zero lowcore */
-       memcpy_absolute(&S390_lowcore.restart_stack, &lc->restart_stack,
-                       4 * sizeof(unsigned long));
-       memcpy_absolute(&S390_lowcore.restart_psw, &lc->restart_psw,
-                       sizeof(lc->restart_psw));
+       mem_assign_absolute(S390_lowcore.restart_stack, lc->restart_stack);
+       mem_assign_absolute(S390_lowcore.restart_fn, lc->restart_fn);
+       mem_assign_absolute(S390_lowcore.restart_data, lc->restart_data);
+       mem_assign_absolute(S390_lowcore.restart_source, lc->restart_source);
+       mem_assign_absolute(S390_lowcore.restart_psw, lc->restart_psw);
 
        set_prefix((u32)(unsigned long) lc);
        lowcore_ptr[0] = lc;
@@ -598,9 +599,7 @@ static void __init setup_memory_end(void)
 static void __init setup_vmcoreinfo(void)
 {
 #ifdef CONFIG_KEXEC
-       unsigned long ptr = paddr_vmcoreinfo_note();
-
-       memcpy_absolute(&S390_lowcore.vmcore_info, &ptr, sizeof(ptr));
+       mem_assign_absolute(S390_lowcore.vmcore_info, paddr_vmcoreinfo_note());
 #endif
 }
 
This page took 0.024146 seconds and 5 git commands to generate.