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 ---