Lines Matching refs:rsv
619 struct linux_efi_memreserve *rsv; in efi_config_parse_tables() local
634 rsv = (void *)(p + prsv % PAGE_SIZE); in efi_config_parse_tables()
638 struct_size(rsv, entry, rsv->size)); in efi_config_parse_tables()
640 for (i = 0; i < atomic_read(&rsv->count); i++) { in efi_config_parse_tables()
641 memblock_reserve(rsv->entry[i].base, in efi_config_parse_tables()
642 rsv->entry[i].size); in efi_config_parse_tables()
645 prsv = rsv->next; in efi_config_parse_tables()
915 struct linux_efi_memreserve *rsv; in efi_mem_reserve_persistent() local
929 for (prsv = efi_memreserve_root->next; prsv; prsv = rsv->next) { in efi_mem_reserve_persistent()
930 rsv = memremap(prsv, sizeof(*rsv), MEMREMAP_WB); in efi_mem_reserve_persistent()
931 index = atomic_fetch_add_unless(&rsv->count, 1, rsv->size); in efi_mem_reserve_persistent()
932 if (index < rsv->size) { in efi_mem_reserve_persistent()
933 rsv->entry[index].base = addr; in efi_mem_reserve_persistent()
934 rsv->entry[index].size = size; in efi_mem_reserve_persistent()
936 memunmap(rsv); in efi_mem_reserve_persistent()
939 memunmap(rsv); in efi_mem_reserve_persistent()
943 rsv = (struct linux_efi_memreserve *)__get_free_page(GFP_ATOMIC); in efi_mem_reserve_persistent()
944 if (!rsv) in efi_mem_reserve_persistent()
947 rc = efi_mem_reserve_iomem(__pa(rsv), SZ_4K); in efi_mem_reserve_persistent()
949 free_page((unsigned long)rsv); in efi_mem_reserve_persistent()
959 rsv->size = EFI_MEMRESERVE_COUNT(SZ_4K); in efi_mem_reserve_persistent()
960 atomic_set(&rsv->count, 1); in efi_mem_reserve_persistent()
961 rsv->entry[0].base = addr; in efi_mem_reserve_persistent()
962 rsv->entry[0].size = size; in efi_mem_reserve_persistent()
965 rsv->next = efi_memreserve_root->next; in efi_mem_reserve_persistent()
966 efi_memreserve_root->next = __pa(rsv); in efi_mem_reserve_persistent()