Commit d1dda26f authored by GUO Zihua's avatar GUO Zihua
Browse files

powerpc/fsl_booke/kaslr: Fix preserved memory size for int-vectors issue

hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I8OHAZ



--------------------------------

The first 32k of memory is reserved for interrupt vectors, however for
powerpc64 this is not enough. Fix this by reserving the real size of
interrupt vectors.

Signed-off-by: default avatarGUO Zihua <guozihua@huawei.com>
parent 9a2d4673
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -758,6 +758,7 @@ static inline void save_fscr_to_task(void) {}
void __init early_init_devtree(void *params)
{
	phys_addr_t limit;
	size_t int_vector_size;

	DBG(" -> early_init_devtree(%px)\n", params);

@@ -810,9 +811,12 @@ void __init early_init_devtree(void *params)
	setup_initial_memory_limit(memstart_addr, first_memblock_size);
	/* Reserve MEMBLOCK regions used by kernel, initrd, dt, etc... */
	memblock_reserve(PHYSICAL_START, __pa(_end) - PHYSICAL_START);
	/* If relocatable, reserve first 32k for interrupt vectors etc. */
	/* If relocatable, reserve at least 32k for interrupt vectors etc. */
	int_vector_size = (size_t)((uintptr_t)__end_interrupts -
				   (uintptr_t)_stext);
	int_vector_size = max_t(size_t, 0x8000, int_vector_size);
	if (PHYSICAL_START > MEMORY_START)
		memblock_reserve(MEMORY_START, 0x8000);
		memblock_reserve(MEMORY_START, int_vector_size);
	reserve_kdump_trampoline();
#if defined(CONFIG_FA_DUMP) || defined(CONFIG_PRESERVE_FA_DUMP)
	/*