setup.c (fcb2b70cdb194157678fb1a75f9ff499aeba3d2a) setup.c (b02002cc4c0f8a2340d07690f58cae0c04ba2325)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * S390 version
4 * Copyright IBM Corp. 1999, 2012
5 * Author(s): Hartmut Penner (hp@de.ibm.com),
6 * Martin Schwidefsky (schwidefsky@de.ibm.com)
7 *
8 * Derived from "arch/i386/kernel/setup.c"

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

123unsigned long MODULES_VADDR;
124unsigned long MODULES_END;
125
126/* An array with a pointer to the lowcore of every CPU. */
127struct lowcore *lowcore_ptr[NR_CPUS];
128EXPORT_SYMBOL(lowcore_ptr);
129
130/*
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * S390 version
4 * Copyright IBM Corp. 1999, 2012
5 * Author(s): Hartmut Penner (hp@de.ibm.com),
6 * Martin Schwidefsky (schwidefsky@de.ibm.com)
7 *
8 * Derived from "arch/i386/kernel/setup.c"

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

123unsigned long MODULES_VADDR;
124unsigned long MODULES_END;
125
126/* An array with a pointer to the lowcore of every CPU. */
127struct lowcore *lowcore_ptr[NR_CPUS];
128EXPORT_SYMBOL(lowcore_ptr);
129
130/*
131 * The Write Back bit position in the physaddr is given by the SLPC PCI.
132 * Leaving the mask zero always uses write through which is safe
133 */
134unsigned long mio_wb_bit_mask __ro_after_init;
135
136/*
131 * This is set up by the setup-routine at boot-time
132 * for S390 need to find out, what we have to setup
133 * using address 0x10400 ...
134 */
135
136#include <asm/setup.h>
137
138/*

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

397 lc->machine_flags = S390_lowcore.machine_flags;
398 lc->preempt_count = S390_lowcore.preempt_count;
399 lc->stfl_fac_list = S390_lowcore.stfl_fac_list;
400 memcpy(lc->stfle_fac_list, S390_lowcore.stfle_fac_list,
401 sizeof(lc->stfle_fac_list));
402 memcpy(lc->alt_stfle_fac_list, S390_lowcore.alt_stfle_fac_list,
403 sizeof(lc->alt_stfle_fac_list));
404 nmi_alloc_boot_cpu(lc);
137 * This is set up by the setup-routine at boot-time
138 * for S390 need to find out, what we have to setup
139 * using address 0x10400 ...
140 */
141
142#include <asm/setup.h>
143
144/*

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

403 lc->machine_flags = S390_lowcore.machine_flags;
404 lc->preempt_count = S390_lowcore.preempt_count;
405 lc->stfl_fac_list = S390_lowcore.stfl_fac_list;
406 memcpy(lc->stfle_fac_list, S390_lowcore.stfle_fac_list,
407 sizeof(lc->stfle_fac_list));
408 memcpy(lc->alt_stfle_fac_list, S390_lowcore.alt_stfle_fac_list,
409 sizeof(lc->alt_stfle_fac_list));
410 nmi_alloc_boot_cpu(lc);
405 vdso_alloc_boot_cpu(lc);
406 lc->sync_enter_timer = S390_lowcore.sync_enter_timer;
407 lc->async_enter_timer = S390_lowcore.async_enter_timer;
408 lc->exit_timer = S390_lowcore.exit_timer;
409 lc->user_timer = S390_lowcore.user_timer;
410 lc->system_timer = S390_lowcore.system_timer;
411 lc->steal_timer = S390_lowcore.steal_timer;
412 lc->last_update_timer = S390_lowcore.last_update_timer;
413 lc->last_update_clock = S390_lowcore.last_update_clock;

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

614 .notifier_call = kdump_mem_notifier,
615};
616
617#endif
618
619/*
620 * Make sure that the area behind memory_end is protected
621 */
411 lc->sync_enter_timer = S390_lowcore.sync_enter_timer;
412 lc->async_enter_timer = S390_lowcore.async_enter_timer;
413 lc->exit_timer = S390_lowcore.exit_timer;
414 lc->user_timer = S390_lowcore.user_timer;
415 lc->system_timer = S390_lowcore.system_timer;
416 lc->steal_timer = S390_lowcore.steal_timer;
417 lc->last_update_timer = S390_lowcore.last_update_timer;
418 lc->last_update_clock = S390_lowcore.last_update_clock;

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

619 .notifier_call = kdump_mem_notifier,
620};
621
622#endif
623
624/*
625 * Make sure that the area behind memory_end is protected
626 */
622static void __init reserve_memory_end(void)
627static void reserve_memory_end(void)
623{
624 if (memory_end_set)
625 memblock_reserve(memory_end, ULONG_MAX);
626}
627
628/*
629 * Make sure that oldmem, where the dump is stored, is protected
630 */
628{
629 if (memory_end_set)
630 memblock_reserve(memory_end, ULONG_MAX);
631}
632
633/*
634 * Make sure that oldmem, where the dump is stored, is protected
635 */
631static void __init reserve_oldmem(void)
636static void reserve_oldmem(void)
632{
633#ifdef CONFIG_CRASH_DUMP
634 if (OLDMEM_BASE)
635 /* Forget all memory above the running kdump system */
636 memblock_reserve(OLDMEM_SIZE, (phys_addr_t)ULONG_MAX);
637#endif
638}
639
640/*
641 * Make sure that oldmem, where the dump is stored, is protected
642 */
637{
638#ifdef CONFIG_CRASH_DUMP
639 if (OLDMEM_BASE)
640 /* Forget all memory above the running kdump system */
641 memblock_reserve(OLDMEM_SIZE, (phys_addr_t)ULONG_MAX);
642#endif
643}
644
645/*
646 * Make sure that oldmem, where the dump is stored, is protected
647 */
643static void __init remove_oldmem(void)
648static void remove_oldmem(void)
644{
645#ifdef CONFIG_CRASH_DUMP
646 if (OLDMEM_BASE)
647 /* Forget all memory above the running kdump system */
648 memblock_remove(OLDMEM_SIZE, (phys_addr_t)ULONG_MAX);
649#endif
650}
651

--- 528 unchanged lines hidden ---
649{
650#ifdef CONFIG_CRASH_DUMP
651 if (OLDMEM_BASE)
652 /* Forget all memory above the running kdump system */
653 memblock_remove(OLDMEM_SIZE, (phys_addr_t)ULONG_MAX);
654#endif
655}
656

--- 528 unchanged lines hidden ---