ident_map_size
ident_map_size = max_physmem_end;
ident_map_size = min(ident_map_size, memory_limit);
ident_map_size = min(ident_map_size, 1UL << MAX_PHYSMEM_BITS);
ident_map_size = min(ident_map_size, oldmem_data.size);
ident_map_size = min(ident_map_size, hsa_size);
boot_debug("Identity map size: 0x%016lx\n", ident_map_size);
pages = ident_map_size / PAGE_SIZE;
vsize = get_vmem_size(ident_map_size, vmemmap_size, vmalloc_size, _REGION3_SIZE);
vsize = get_vmem_size(ident_map_size, vmemmap_size, vmalloc_size, _REGION2_SIZE);
ident_map_size = min(ident_map_size, vmemmap_start);
vmemmap_size = SECTION_ALIGN_UP(ident_map_size / PAGE_SIZE) * sizeof(struct page);
vmemmap_size = SECTION_ALIGN_DOWN(ident_map_size / PAGE_SIZE) * sizeof(struct page);
ident_map_size = vmemmap_size / sizeof(struct page) * PAGE_SIZE;
max_mappable = max(ident_map_size, MAX_DCSS_ADDR);
__identity_base + ident_map_size);
size = round_up(ident_map_size / 8, _SEGMENT_SIZE);
physmem_set_usable_limit(ident_map_size);
rescue_initrd(safe_addr, ident_map_size);
text_lma = randomize_within_range(size, _SEGMENT_SIZE, TEXT_OFFSET, ident_map_size);
kasan_populate((unsigned long)__identity_va(ident_map_size), VMALLOC_START,
max_pfn = max_low_pfn = PFN_DOWN(ident_map_size);
pr_notice("The maximum memory size is %luMB\n", ident_map_size >> 20);
rc = parse_crashkernel(boot_command_line, ident_map_size,
high_memory = __va(ident_map_size);
end = min(lowcore_end, (void *)(__identity_base + ident_map_size));
memblock_set_current_limit(ident_map_size);
dma_contiguous_reserve(ident_map_size);
rc |= add_marker(__identity_base, __identity_base + ident_map_size, "Identity Mapping");
__set_memory_4k(__va(0), absolute_pointer(__va(0)) + ident_map_size);
if (start >= ident_map_size)
if (start + size > ident_map_size)
size = ident_map_size - start;