Commit d7bebcb4 authored by Vasily Gorbik's avatar Vasily Gorbik Committed by Alexander Gordeev
Browse files

s390: Optimize __pa/__va when RANDOMIZE_IDENTITY_BASE is off



Use a zero identity base when CONFIG_RANDOMIZE_IDENTITY_BASE is off,
slightly optimizing __pa/__va calculations.

Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
Acked-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
parent 9af310ef
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -372,8 +372,9 @@ static unsigned long setup_kernel_memory_layout(unsigned long kernel_size)
	BUILD_BUG_ON(MAX_DCSS_ADDR > (1UL << MAX_PHYSMEM_BITS));
	max_mappable = max(ident_map_size, MAX_DCSS_ADDR);
	max_mappable = min(max_mappable, vmemmap_start);
	if (IS_ENABLED(CONFIG_RANDOMIZE_IDENTITY_BASE))
#ifdef CONFIG_RANDOMIZE_IDENTITY_BASE
	__identity_base = round_down(vmemmap_start - max_mappable, rte_size);
#endif
	boot_debug("identity map:        0x%016lx-0x%016lx\n", __identity_base,
		   __identity_base + ident_map_size);

+4 −0
Original line number Diff line number Diff line
@@ -184,7 +184,11 @@ extern struct vm_layout vm_layout;

#define __kaslr_offset		vm_layout.kaslr_offset
#define __kaslr_offset_phys	vm_layout.kaslr_offset_phys
#ifdef CONFIG_RANDOMIZE_IDENTITY_BASE
#define __identity_base		vm_layout.identity_base
#else
#define __identity_base		0UL
#endif
#define ident_map_size		vm_layout.identity_size

static inline unsigned long kaslr_offset(void)
+1 −1
Original line number Diff line number Diff line
@@ -740,7 +740,7 @@ static void __init reserve_lowcore(void)
	void *lowcore_end = lowcore_start + sizeof(struct lowcore);
	void *start, *end;

	if ((void *)__identity_base < lowcore_end) {
	if (absolute_pointer(__identity_base) < lowcore_end) {
		start = max(lowcore_start, (void *)__identity_base);
		end = min(lowcore_end, (void *)(__identity_base + ident_map_size));
		memblock_reserve(__pa(start), __pa(end));