machine_kexec.c (78c98f9074135d3dab4e39544e0a537f92388fce) | machine_kexec.c (98587c2d894c34c9af5cd84ca169e1cd493aa692) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright IBM Corp. 2005, 2011 4 * 5 * Author(s): Rolf Adelsberger, 6 * Heiko Carstens <heiko.carstens@de.ibm.com> 7 * Michael Holzheu <holzheu@linux.vnet.ibm.com> 8 */ --- 82 unchanged lines hidden (view full) --- 91 memcpy((void *) __LC_FPREGS_SAVE_AREA, 92 (void *)(prefix + __LC_FPREGS_SAVE_AREA), 512); 93 94 __load_psw_mask(PSW_MASK_BASE | PSW_DEFAULT_KEY | PSW_MASK_EA | PSW_MASK_BA); 95 start_kdump = (void *)((struct kimage *) image)->start; 96 start_kdump(1); 97 98 /* Die if start_kdump returns */ | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright IBM Corp. 2005, 2011 4 * 5 * Author(s): Rolf Adelsberger, 6 * Heiko Carstens <heiko.carstens@de.ibm.com> 7 * Michael Holzheu <holzheu@linux.vnet.ibm.com> 8 */ --- 82 unchanged lines hidden (view full) --- 91 memcpy((void *) __LC_FPREGS_SAVE_AREA, 92 (void *)(prefix + __LC_FPREGS_SAVE_AREA), 512); 93 94 __load_psw_mask(PSW_MASK_BASE | PSW_DEFAULT_KEY | PSW_MASK_EA | PSW_MASK_BA); 95 start_kdump = (void *)((struct kimage *) image)->start; 96 start_kdump(1); 97 98 /* Die if start_kdump returns */ |
99 disabled_wait((unsigned long) __builtin_return_address(0)); | 99 disabled_wait(); |
100} 101 102/* 103 * Start kdump: create a LGR log entry, store status of all CPUs and 104 * branch to __do_machine_kdump. 105 */ 106static noinline void __machine_kdump(void *image) 107{ --- 171 unchanged lines hidden (view full) --- 279 s390_reset_system(); 280 data_mover = (relocate_kernel_t) page_to_phys(image->control_code_page); 281 282 __arch_local_irq_stnsm(0xfb); /* disable DAT - avoid no-execute */ 283 /* Call the moving routine */ 284 (*data_mover)(&image->head, image->start); 285 286 /* Die if kexec returns */ | 100} 101 102/* 103 * Start kdump: create a LGR log entry, store status of all CPUs and 104 * branch to __do_machine_kdump. 105 */ 106static noinline void __machine_kdump(void *image) 107{ --- 171 unchanged lines hidden (view full) --- 279 s390_reset_system(); 280 data_mover = (relocate_kernel_t) page_to_phys(image->control_code_page); 281 282 __arch_local_irq_stnsm(0xfb); /* disable DAT - avoid no-execute */ 283 /* Call the moving routine */ 284 (*data_mover)(&image->head, image->start); 285 286 /* Die if kexec returns */ |
287 disabled_wait((unsigned long) __builtin_return_address(0)); | 287 disabled_wait(); |
288} 289 290/* 291 * Reset system and call either kdump or normal kexec 292 */ 293static void __machine_kexec(void *data) 294{ 295 __arch_local_irq_stosm(0x04); /* enable DAT */ --- 22 unchanged lines hidden --- | 288} 289 290/* 291 * Reset system and call either kdump or normal kexec 292 */ 293static void __machine_kexec(void *data) 294{ 295 __arch_local_irq_stosm(0x04); /* enable DAT */ --- 22 unchanged lines hidden --- |