mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
s390/mm: Create virtual memory layout structure
This is a preparatory rework to allow uncoupling virtual and physical addresses spaces. Put virtual memory layout information into a structure to improve code generation when accessing the structure members, which are currently only ident_map_size and __kaslr_offset. Acked-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
This commit is contained in:
parent
bbe72f3902
commit
236f324b74
|
|
@ -19,7 +19,7 @@
|
||||||
#include "boot.h"
|
#include "boot.h"
|
||||||
#include "uv.h"
|
#include "uv.h"
|
||||||
|
|
||||||
unsigned long __bootdata_preserved(__kaslr_offset);
|
struct vm_layout __bootdata_preserved(vm_layout);
|
||||||
unsigned long __bootdata_preserved(__abs_lowcore);
|
unsigned long __bootdata_preserved(__abs_lowcore);
|
||||||
unsigned long __bootdata_preserved(__memcpy_real_area);
|
unsigned long __bootdata_preserved(__memcpy_real_area);
|
||||||
pte_t *__bootdata_preserved(memcpy_real_ptep);
|
pte_t *__bootdata_preserved(memcpy_real_ptep);
|
||||||
|
|
@ -30,7 +30,6 @@ unsigned long __bootdata_preserved(vmemmap_size);
|
||||||
unsigned long __bootdata_preserved(MODULES_VADDR);
|
unsigned long __bootdata_preserved(MODULES_VADDR);
|
||||||
unsigned long __bootdata_preserved(MODULES_END);
|
unsigned long __bootdata_preserved(MODULES_END);
|
||||||
unsigned long __bootdata_preserved(max_mappable);
|
unsigned long __bootdata_preserved(max_mappable);
|
||||||
unsigned long __bootdata(ident_map_size);
|
|
||||||
|
|
||||||
u64 __bootdata_preserved(stfle_fac_list[16]);
|
u64 __bootdata_preserved(stfle_fac_list[16]);
|
||||||
u64 __bootdata_preserved(alt_stfle_fac_list[16]);
|
u64 __bootdata_preserved(alt_stfle_fac_list[16]);
|
||||||
|
|
|
||||||
|
|
@ -178,7 +178,16 @@ int arch_make_page_accessible(struct page *page);
|
||||||
#define HAVE_ARCH_MAKE_PAGE_ACCESSIBLE
|
#define HAVE_ARCH_MAKE_PAGE_ACCESSIBLE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern unsigned long __kaslr_offset;
|
struct vm_layout {
|
||||||
|
unsigned long kaslr_offset;
|
||||||
|
unsigned long identity_size;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern struct vm_layout vm_layout;
|
||||||
|
|
||||||
|
#define __kaslr_offset vm_layout.kaslr_offset
|
||||||
|
#define ident_map_size vm_layout.identity_size
|
||||||
|
|
||||||
static inline unsigned long kaslr_offset(void)
|
static inline unsigned long kaslr_offset(void)
|
||||||
{
|
{
|
||||||
return __kaslr_offset;
|
return __kaslr_offset;
|
||||||
|
|
|
||||||
|
|
@ -146,10 +146,9 @@ static u32 __amode31_ref *__ctl_linkage_stack = __ctl_linkage_stack_amode31;
|
||||||
static u32 __amode31_ref *__ctl_duct = __ctl_duct_amode31;
|
static u32 __amode31_ref *__ctl_duct = __ctl_duct_amode31;
|
||||||
|
|
||||||
unsigned long __bootdata_preserved(max_mappable);
|
unsigned long __bootdata_preserved(max_mappable);
|
||||||
unsigned long __bootdata(ident_map_size);
|
|
||||||
struct physmem_info __bootdata(physmem_info);
|
struct physmem_info __bootdata(physmem_info);
|
||||||
|
|
||||||
unsigned long __bootdata_preserved(__kaslr_offset);
|
struct vm_layout __bootdata_preserved(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