Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 615b04b3 authored by Heiko Carstens's avatar Heiko Carstens Committed by Martin Schwidefsky
Browse files

[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: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 229d9c6d
Loading
Loading
Loading
Loading
+2 −13
Original line number Diff line number Diff line
@@ -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
+2 −14
Original line number Diff line number Diff line
@@ -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
+7 −0
Original line number Diff line number Diff line
@@ -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) {
+6 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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
Loading