Lines Matching refs:region

153 			 * memmap=nn@ss specifies usable region, should
391 * Avoid the region that is unsafe to overlap during
430 * overlap region with the lowest address.
492 static void store_slot_info(struct mem_vector *region, unsigned long image_size)
499 slot_area.addr = region->start;
500 slot_area.num = 1 + (region->size - image_size) / CONFIG_PHYSICAL_ALIGN;
507 * Skip as many 1GB huge pages as possible in the passed region
511 process_gb_huge_pages(struct mem_vector *region, unsigned long image_size)
518 store_slot_info(region, image_size);
522 /* Are there any 1GB pages in the region? */
523 pud_start = ALIGN(region->start, PUD_SIZE);
524 pud_end = ALIGN_DOWN(region->start + region->size, PUD_SIZE);
528 store_slot_info(region, image_size);
532 /* Check if the head part of the region is usable. */
533 if (pud_start >= region->start + image_size) {
534 tmp.start = region->start;
535 tmp.size = pud_start - region->start;
548 /* Check if the tail part of the region is usable. */
549 if (region->start + region->size >= pud_end + image_size) {
551 tmp.size = region->start + region->size - pud_end;
584 struct mem_vector region, overlap;
588 region.start = max_t(u64, entry->start, minimum);
594 region.start = ALIGN(region.start, CONFIG_PHYSICAL_ALIGN);
597 if (region.start > region_end)
601 region.size = region_end - region.start;
603 /* Return if region can't contain decompressed kernel */
604 if (region.size < image_size)
607 /* If nothing overlaps, store the region and return. */
608 if (!mem_avoid_overlap(&region, &overlap)) {
609 process_gb_huge_pages(&region, image_size);
613 /* Store beginning of region if holds at least image_size. */
614 if (overlap.start >= region.start + image_size) {
615 region.size = overlap.start - region.start;
616 process_gb_huge_pages(&region, image_size);
619 /* Clip off the overlapping region and start over. */
620 region.start = overlap.start + overlap.size;
624 static bool process_mem_region(struct mem_vector *region,
631 * use @region directly.
634 __process_mem_region(region, minimum, image_size);
646 * immovable memory and @region.
652 if (!mem_overlaps(region, &immovable_mem[i]))
657 region_end = region->start + region->size;
659 entry.start = clamp(region->start, start, end);
711 struct mem_vector region;
757 region.start = md->phys_addr;
758 region.size = md->num_pages << EFI_PAGE_SHIFT;
759 if (process_mem_region(&region, minimum, image_size))
776 struct mem_vector region;
785 region.start = entry->addr;
786 region.size = entry->size;
787 if (process_mem_region(&region, minimum, image_size))
877 warn("Physical KASLR disabled: no suitable memory region!");