Commit 7de0446f authored by Alexander Gordeev's avatar Alexander Gordeev
Browse files

s390/boot: Make identity mapping base address explicit



This is a preparatory rework to allow uncoupling virtual
and physical addresses spaces.

Currently the identity mapping base address is implicit
and is always set to zero. Make it explicit by putting
into __identity_base persistent boot variable and use it
in proper context - which is the value of PAGE_OFFSET.

Acked-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
parent 3bb11234
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -181,6 +181,7 @@ int arch_make_page_accessible(struct page *page);
struct vm_layout {
	unsigned long kaslr_offset;
	unsigned long kaslr_offset_phys;
	unsigned long identity_base;
	unsigned long identity_size;
};

@@ -188,6 +189,7 @@ extern struct vm_layout vm_layout;

#define __kaslr_offset		vm_layout.kaslr_offset
#define __kaslr_offset_phys	vm_layout.kaslr_offset_phys
#define __identity_base		vm_layout.identity_base
#define ident_map_size		vm_layout.identity_size

static inline unsigned long kaslr_offset(void)
@@ -203,8 +205,8 @@ static inline int kaslr_enabled(void)
	return 0;
}

#define __PAGE_OFFSET		0x0UL
#define PAGE_OFFSET		0x0UL
#define __PAGE_OFFSET		__identity_base
#define PAGE_OFFSET		__PAGE_OFFSET

#define __pa_nodebug(x)		((unsigned long)(x))

+1 −0
Original line number Diff line number Diff line
@@ -149,6 +149,7 @@ unsigned long __bootdata_preserved(max_mappable);
struct physmem_info __bootdata(physmem_info);

struct vm_layout __bootdata_preserved(vm_layout);
EXPORT_SYMBOL_GPL(vm_layout);
int __bootdata_preserved(__kaslr_enabled);
unsigned int __bootdata_preserved(zlib_dfltcc_support);
EXPORT_SYMBOL(zlib_dfltcc_support);