Lines Matching refs:rsv
620 struct linux_efi_memreserve *rsv; in efi_config_parse_tables() local
635 rsv = (void *)(p + prsv % PAGE_SIZE); in efi_config_parse_tables()
639 struct_size(rsv, entry, rsv->size)); in efi_config_parse_tables()
641 for (i = 0; i < atomic_read(&rsv->count); i++) { in efi_config_parse_tables()
642 memblock_reserve(rsv->entry[i].base, in efi_config_parse_tables()
643 rsv->entry[i].size); in efi_config_parse_tables()
646 prsv = rsv->next; in efi_config_parse_tables()
934 struct linux_efi_memreserve *rsv; in efi_mem_reserve_persistent() local
949 rsv = memremap(prsv, sizeof(*rsv), MEMREMAP_WB); in efi_mem_reserve_persistent()
950 index = atomic_fetch_add_unless(&rsv->count, 1, rsv->size); in efi_mem_reserve_persistent()
951 if (index < rsv->size) { in efi_mem_reserve_persistent()
952 rsv->entry[index].base = addr; in efi_mem_reserve_persistent()
953 rsv->entry[index].size = size; in efi_mem_reserve_persistent()
955 memunmap(rsv); in efi_mem_reserve_persistent()
958 prsv = rsv->next; in efi_mem_reserve_persistent()
959 memunmap(rsv); in efi_mem_reserve_persistent()
963 rsv = (struct linux_efi_memreserve *)__get_free_page(GFP_ATOMIC); in efi_mem_reserve_persistent()
964 if (!rsv) in efi_mem_reserve_persistent()
967 rc = efi_mem_reserve_iomem(__pa(rsv), SZ_4K); in efi_mem_reserve_persistent()
969 free_page((unsigned long)rsv); in efi_mem_reserve_persistent()
979 rsv->size = EFI_MEMRESERVE_COUNT(SZ_4K); in efi_mem_reserve_persistent()
980 atomic_set(&rsv->count, 1); in efi_mem_reserve_persistent()
981 rsv->entry[0].base = addr; in efi_mem_reserve_persistent()
982 rsv->entry[0].size = size; in efi_mem_reserve_persistent()
985 rsv->next = efi_memreserve_root->next; in efi_mem_reserve_persistent()
986 efi_memreserve_root->next = __pa(rsv); in efi_mem_reserve_persistent()