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