machine_kexec.c (60a2f25de7b8b785baee2932db932ae9a5b8c86d) | machine_kexec.c (208da1d5fc3c67d8ae5d34e844fd67cc47a136f0) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright IBM Corp. 2005, 2011 4 * 5 * Author(s): Rolf Adelsberger, 6 * Michael Holzheu <holzheu@linux.vnet.ibm.com> 7 */ 8 --- 38 unchanged lines hidden (view full) --- 47{ 48 struct kimage *image = data; 49 purgatory_t purgatory; 50 unsigned long prefix; 51 52 purgatory = (purgatory_t)image->start; 53 54 /* store_status() saved the prefix register to lowcore */ | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright IBM Corp. 2005, 2011 4 * 5 * Author(s): Rolf Adelsberger, 6 * Michael Holzheu <holzheu@linux.vnet.ibm.com> 7 */ 8 --- 38 unchanged lines hidden (view full) --- 47{ 48 struct kimage *image = data; 49 purgatory_t purgatory; 50 unsigned long prefix; 51 52 purgatory = (purgatory_t)image->start; 53 54 /* store_status() saved the prefix register to lowcore */ |
55 prefix = (unsigned long) S390_lowcore.prefixreg_save_area; | 55 prefix = (unsigned long)get_lowcore()->prefixreg_save_area; |
56 57 /* Now do the reset */ 58 s390_reset_system(); 59 60 /* 61 * Copy dump CPU store status info to absolute zero. 62 * This need to be done *after* s390_reset_system set the 63 * prefix register of this CPU to zero --- 22 unchanged lines hidden (view full) --- 86 this_cpu = smp_find_processor_id(stap()); 87 for_each_online_cpu(cpu) { 88 if (cpu == this_cpu) 89 continue; 90 if (smp_store_status(cpu)) 91 continue; 92 } 93 /* Store status of the boot CPU */ | 56 57 /* Now do the reset */ 58 s390_reset_system(); 59 60 /* 61 * Copy dump CPU store status info to absolute zero. 62 * This need to be done *after* s390_reset_system set the 63 * prefix register of this CPU to zero --- 22 unchanged lines hidden (view full) --- 86 this_cpu = smp_find_processor_id(stap()); 87 for_each_online_cpu(cpu) { 88 if (cpu == this_cpu) 89 continue; 90 if (smp_store_status(cpu)) 91 continue; 92 } 93 /* Store status of the boot CPU */ |
94 mcesa = __va(S390_lowcore.mcesad & MCESA_ORIGIN_MASK); | 94 mcesa = __va(get_lowcore()->mcesad & MCESA_ORIGIN_MASK); |
95 if (cpu_has_vx()) 96 save_vx_regs((__vector128 *) mcesa->vector_save_area); 97 if (MACHINE_HAS_GS) { 98 local_ctl_store(2, &cr2_old.reg); 99 cr2_new = cr2_old; 100 cr2_new.gse = 1; 101 local_ctl_load(2, &cr2_new.reg); 102 save_gs_cb((struct gs_cb *) mcesa->guarded_storage_save_area); --- 170 unchanged lines hidden --- | 95 if (cpu_has_vx()) 96 save_vx_regs((__vector128 *) mcesa->vector_save_area); 97 if (MACHINE_HAS_GS) { 98 local_ctl_store(2, &cr2_old.reg); 99 cr2_new = cr2_old; 100 cr2_new.gse = 1; 101 local_ctl_load(2, &cr2_new.reg); 102 save_gs_cb((struct gs_cb *) mcesa->guarded_storage_save_area); --- 170 unchanged lines hidden --- |