Commit 4394a507 authored by Alexander Gordeev's avatar Alexander Gordeev Committed by Heiko Carstens
Browse files

s390/boot: make type of __vmlinux_relocs_64_start|end consistent



Make the type of __vmlinux_relocs_64_start|end symbols as
char array, just like it is done for all other sections.
Function rescue_relocs() is simplified as result.

Suggested-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Acked-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
parent 8495fd4d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ extern unsigned long vmalloc_size;
extern int vmalloc_size_set;
extern char __boot_data_start[], __boot_data_end[];
extern char __boot_data_preserved_start[], __boot_data_preserved_end[];
extern int __vmlinux_relocs_64_start[], __vmlinux_relocs_64_end[];
extern char __vmlinux_relocs_64_start[], __vmlinux_relocs_64_end[];
extern char _decompressor_syms_start[], _decompressor_syms_end[];
extern char _stack_start[], _stack_end[];
extern char _end[], _decompressor_end[];
+5 −7
Original line number Diff line number Diff line
@@ -177,18 +177,16 @@ static void kaslr_adjust_got(unsigned long offset) {}
static void rescue_relocs(void) {}
static void free_relocs(void) {}
#else
int *vmlinux_relocs_64_start;
int *vmlinux_relocs_64_end;
static int *vmlinux_relocs_64_start;
static int *vmlinux_relocs_64_end;

static void rescue_relocs(void)
{
	unsigned long size, nrelocs;
	unsigned long size = __vmlinux_relocs_64_end - __vmlinux_relocs_64_start;

	nrelocs = __vmlinux_relocs_64_end - __vmlinux_relocs_64_start;
	size = nrelocs * sizeof(uint32_t);
	vmlinux_relocs_64_start = (void *)physmem_alloc_top_down(RR_RELOC, size, 0);
	memmove(vmlinux_relocs_64_start, (void *)__vmlinux_relocs_64_start, size);
	vmlinux_relocs_64_end = vmlinux_relocs_64_start + nrelocs;
	vmlinux_relocs_64_end = (void *)vmlinux_relocs_64_start + size;
	memmove(vmlinux_relocs_64_start, __vmlinux_relocs_64_start, size);
}

static void free_relocs(void)