File tree Expand file tree Collapse file tree 5 files changed +8
-5
lines changed Expand file tree Collapse file tree 5 files changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -220,6 +220,7 @@ static unsigned long setup_kernel_memory_layout(void)
220
220
pages = SECTION_ALIGN_UP (pages );
221
221
/* keep vmemmap_start aligned to a top level region table entry */
222
222
vmemmap_start = round_down (VMALLOC_START - pages * sizeof (struct page ), rte_size );
223
+ /* vmemmap_start is the future VMEM_MAX_PHYS, make sure it is within MAX_PHYSMEM */
223
224
vmemmap_start = min (vmemmap_start , 1UL << MAX_PHYSMEM_BITS );
224
225
/* make sure identity map doesn't overlay with vmemmap */
225
226
ident_map_size = min (ident_map_size , vmemmap_start );
Original file line number Diff line number Diff line change @@ -89,6 +89,8 @@ extern unsigned long __bootdata_preserved(VMALLOC_END);
89
89
extern struct page * __bootdata_preserved (vmemmap );
90
90
extern unsigned long __bootdata_preserved (vmemmap_size );
91
91
92
+ #define VMEM_MAX_PHYS ((unsigned long) vmemmap)
93
+
92
94
extern unsigned long __bootdata_preserved (MODULES_VADDR );
93
95
extern unsigned long __bootdata_preserved (MODULES_END );
94
96
#define MODULES_VADDR MODULES_VADDR
Original file line number Diff line number Diff line change @@ -642,7 +642,7 @@ void segment_warning(int rc, char *seg_name)
642
642
break ;
643
643
case - ERANGE :
644
644
pr_err ("DCSS %s exceeds the kernel mapping range (%lu) "
645
- "and cannot be loaded\n" , seg_name , ident_map_size );
645
+ "and cannot be loaded\n" , seg_name , VMEM_MAX_PHYS );
646
646
break ;
647
647
default :
648
648
break ;
Original file line number Diff line number Diff line change @@ -531,7 +531,7 @@ struct range arch_get_mappable_range(void)
531
531
struct range mhp_range ;
532
532
533
533
mhp_range .start = 0 ;
534
- mhp_range .end = ident_map_size - 1 ;
534
+ mhp_range .end = VMEM_MAX_PHYS - 1 ;
535
535
return mhp_range ;
536
536
}
537
537
Original file line number Diff line number Diff line change @@ -392,10 +392,10 @@ static void __init add_memory_merged(u16 rn)
392
392
goto skip_add ;
393
393
start = rn2addr (first_rn );
394
394
size = (unsigned long long ) num * sclp .rzm ;
395
- if (start >= ident_map_size )
395
+ if (start >= VMEM_MAX_PHYS )
396
396
goto skip_add ;
397
- if (start + size > ident_map_size )
398
- size = ident_map_size - start ;
397
+ if (start + size > VMEM_MAX_PHYS )
398
+ size = VMEM_MAX_PHYS - start ;
399
399
if (start >= ident_map_size )
400
400
goto skip_add ;
401
401
if (start + size > ident_map_size )
You can’t perform that action at this time.
0 commit comments