startup.c (d93618da6b6d453c6a9684a3460ffd51b9b4ef2e) startup.c (80ddf5ce1c9291cb175d52ed1227134ad48c47ee)
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/string.h>
3#include <linux/elf.h>
4#include <asm/boot_data.h>
5#include <asm/sections.h>
6#include <asm/cpu_mf.h>
7#include <asm/setup.h>
8#include <asm/kasan.h>

--- 277 unchanged lines hidden (view full) ---

286 if (!IS_ENABLED(CONFIG_KERNEL_UNCOMPRESSED)) {
287 img = decompress_kernel();
288 memmove((void *)vmlinux.default_lma, img, vmlinux.image_size);
289 } else if (__kaslr_offset)
290 memcpy((void *)vmlinux.default_lma, img, vmlinux.image_size);
291
292 clear_bss_section();
293 copy_bootdata();
1// SPDX-License-Identifier: GPL-2.0
2#include <linux/string.h>
3#include <linux/elf.h>
4#include <asm/boot_data.h>
5#include <asm/sections.h>
6#include <asm/cpu_mf.h>
7#include <asm/setup.h>
8#include <asm/kasan.h>

--- 277 unchanged lines hidden (view full) ---

286 if (!IS_ENABLED(CONFIG_KERNEL_UNCOMPRESSED)) {
287 img = decompress_kernel();
288 memmove((void *)vmlinux.default_lma, img, vmlinux.image_size);
289 } else if (__kaslr_offset)
290 memcpy((void *)vmlinux.default_lma, img, vmlinux.image_size);
291
292 clear_bss_section();
293 copy_bootdata();
294 if (IS_ENABLED(CONFIG_RELOCATABLE))
295 handle_relocs(__kaslr_offset);
294 handle_relocs(__kaslr_offset);
296
297 if (__kaslr_offset) {
298 /*
299 * Save KASLR offset for early dumps, before vmcore_info is set.
300 * Mark as uneven to distinguish from real vmcore_info pointer.
301 */
302 S390_lowcore.vmcore_info = __kaslr_offset | 0x1UL;
303 /* Clear non-relocated kernel */
304 if (IS_ENABLED(CONFIG_KERNEL_UNCOMPRESSED))
305 memset(img, 0, vmlinux.image_size);
306 }
307 vmlinux.entry();
308}
295
296 if (__kaslr_offset) {
297 /*
298 * Save KASLR offset for early dumps, before vmcore_info is set.
299 * Mark as uneven to distinguish from real vmcore_info pointer.
300 */
301 S390_lowcore.vmcore_info = __kaslr_offset | 0x1UL;
302 /* Clear non-relocated kernel */
303 if (IS_ENABLED(CONFIG_KERNEL_UNCOMPRESSED))
304 memset(img, 0, vmlinux.image_size);
305 }
306 vmlinux.entry();
307}