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: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
This commit is contained in:
parent
3bb11234b1
commit
7de0446f0b
@ -181,6 +181,7 @@ int arch_make_page_accessible(struct page *page);
|
|||||||
struct vm_layout {
|
struct vm_layout {
|
||||||
unsigned long kaslr_offset;
|
unsigned long kaslr_offset;
|
||||||
unsigned long kaslr_offset_phys;
|
unsigned long kaslr_offset_phys;
|
||||||
|
unsigned long identity_base;
|
||||||
unsigned long identity_size;
|
unsigned long identity_size;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -188,6 +189,7 @@ extern struct vm_layout vm_layout;
|
|||||||
|
|
||||||
#define __kaslr_offset vm_layout.kaslr_offset
|
#define __kaslr_offset vm_layout.kaslr_offset
|
||||||
#define __kaslr_offset_phys vm_layout.kaslr_offset_phys
|
#define __kaslr_offset_phys vm_layout.kaslr_offset_phys
|
||||||
|
#define __identity_base vm_layout.identity_base
|
||||||
#define ident_map_size vm_layout.identity_size
|
#define ident_map_size vm_layout.identity_size
|
||||||
|
|
||||||
static inline unsigned long kaslr_offset(void)
|
static inline unsigned long kaslr_offset(void)
|
||||||
@ -203,8 +205,8 @@ static inline int kaslr_enabled(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __PAGE_OFFSET 0x0UL
|
#define __PAGE_OFFSET __identity_base
|
||||||
#define PAGE_OFFSET 0x0UL
|
#define PAGE_OFFSET __PAGE_OFFSET
|
||||||
|
|
||||||
#define __pa_nodebug(x) ((unsigned long)(x))
|
#define __pa_nodebug(x) ((unsigned long)(x))
|
||||||
|
|
||||||
|
@ -149,6 +149,7 @@ unsigned long __bootdata_preserved(max_mappable);
|
|||||||
struct physmem_info __bootdata(physmem_info);
|
struct physmem_info __bootdata(physmem_info);
|
||||||
|
|
||||||
struct vm_layout __bootdata_preserved(vm_layout);
|
struct vm_layout __bootdata_preserved(vm_layout);
|
||||||
|
EXPORT_SYMBOL_GPL(vm_layout);
|
||||||
int __bootdata_preserved(__kaslr_enabled);
|
int __bootdata_preserved(__kaslr_enabled);
|
||||||
unsigned int __bootdata_preserved(zlib_dfltcc_support);
|
unsigned int __bootdata_preserved(zlib_dfltcc_support);
|
||||||
EXPORT_SYMBOL(zlib_dfltcc_support);
|
EXPORT_SYMBOL(zlib_dfltcc_support);
|
||||||
|
Loading…
Reference in New Issue
Block a user