mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
[S390] nss: Free unused memory in kernel image.
With CONFIG_SHARED_KERNEL the kernel text segment that might be in a read only memory sections starts at 1MB. Memory between 0x12000 and 0x100000 is unused then. Free this, so we have appr. an extra MB of memory available. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
parent
229d9c6dfb
commit
615b04b301
@ -148,20 +148,9 @@ startup_continue:
|
||||
.Lstartup_init:
|
||||
.long startup_init
|
||||
|
||||
.globl ipl_schib
|
||||
ipl_schib:
|
||||
.rept 13
|
||||
.long 0
|
||||
.endr
|
||||
|
||||
.globl ipl_flags
|
||||
ipl_flags:
|
||||
.long 0
|
||||
.globl ipl_devno
|
||||
ipl_devno:
|
||||
.word 0
|
||||
|
||||
.org 0x12000
|
||||
.globl _ehead
|
||||
_ehead:
|
||||
#ifdef CONFIG_SHARED_KERNEL
|
||||
.org 0x100000
|
||||
#endif
|
||||
|
@ -154,21 +154,9 @@ startup_continue:
|
||||
.Lparmaddr:
|
||||
.quad PARMAREA
|
||||
|
||||
.globl ipl_schib
|
||||
ipl_schib:
|
||||
.rept 13
|
||||
.long 0
|
||||
.endr
|
||||
|
||||
.globl ipl_flags
|
||||
ipl_flags:
|
||||
.long 0
|
||||
.globl ipl_devno
|
||||
ipl_devno:
|
||||
.word 0
|
||||
|
||||
.org 0x12000
|
||||
|
||||
.globl _ehead
|
||||
_ehead:
|
||||
#ifdef CONFIG_SHARED_KERNEL
|
||||
.org 0x100000
|
||||
#endif
|
||||
|
@ -43,6 +43,13 @@ enum ipl_type {
|
||||
#define IPL_FCP_STR "fcp"
|
||||
#define IPL_NSS_STR "nss"
|
||||
|
||||
/*
|
||||
* Must be in data section since the bss section
|
||||
* is not cleared when these are accessed.
|
||||
*/
|
||||
u16 ipl_devno __attribute__((__section__(".data"))) = 0;
|
||||
u32 ipl_flags __attribute__((__section__(".data"))) = 0;
|
||||
|
||||
static char *ipl_type_str(enum ipl_type type)
|
||||
{
|
||||
switch (type) {
|
||||
|
@ -690,8 +690,13 @@ setup_memory(void)
|
||||
psw_set_key(PAGE_DEFAULT_KEY);
|
||||
|
||||
free_bootmem_with_active_regions(0, max_pfn);
|
||||
reserve_bootmem(0, PFN_PHYS(start_pfn));
|
||||
|
||||
/*
|
||||
* Reserve memory used for lowcore/command line/kernel image.
|
||||
*/
|
||||
reserve_bootmem(0, (unsigned long)_ehead);
|
||||
reserve_bootmem((unsigned long)_stext,
|
||||
PFN_PHYS(start_pfn) - (unsigned long)_stext);
|
||||
/*
|
||||
* Reserve the bootmem bitmap itself as well. We do this in two
|
||||
* steps (first step was init_bootmem()) because this catches
|
||||
|
@ -1048,7 +1048,7 @@ void reipl_ccw_dev(struct ccw_dev_id *devid)
|
||||
do_reipl_asm(*((__u32*)&schid));
|
||||
}
|
||||
|
||||
extern struct schib ipl_schib;
|
||||
static struct schib __initdata ipl_schib;
|
||||
|
||||
/*
|
||||
* ipl_save_parameters gets called very early. It is not allowed to access
|
||||
|
@ -3,6 +3,6 @@
|
||||
|
||||
#include <asm-generic/sections.h>
|
||||
|
||||
extern char _eshared[];
|
||||
extern char _eshared[], _ehead[];
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user