Lines Matching refs:rsv
623 struct linux_efi_memreserve *rsv; in efi_config_parse_tables() local
638 rsv = (void *)(p + prsv % PAGE_SIZE); in efi_config_parse_tables()
642 struct_size(rsv, entry, rsv->size)); in efi_config_parse_tables()
644 for (i = 0; i < atomic_read(&rsv->count); i++) { in efi_config_parse_tables()
645 memblock_reserve(rsv->entry[i].base, in efi_config_parse_tables()
646 rsv->entry[i].size); in efi_config_parse_tables()
649 prsv = rsv->next; in efi_config_parse_tables()
930 struct linux_efi_memreserve *rsv; in efi_mem_reserve_persistent() local
945 rsv = memremap(prsv, sizeof(*rsv), MEMREMAP_WB); in efi_mem_reserve_persistent()
946 index = atomic_fetch_add_unless(&rsv->count, 1, rsv->size); in efi_mem_reserve_persistent()
947 if (index < rsv->size) { in efi_mem_reserve_persistent()
948 rsv->entry[index].base = addr; in efi_mem_reserve_persistent()
949 rsv->entry[index].size = size; in efi_mem_reserve_persistent()
951 memunmap(rsv); in efi_mem_reserve_persistent()
954 prsv = rsv->next; in efi_mem_reserve_persistent()
955 memunmap(rsv); in efi_mem_reserve_persistent()
959 rsv = (struct linux_efi_memreserve *)__get_free_page(GFP_ATOMIC); in efi_mem_reserve_persistent()
960 if (!rsv) in efi_mem_reserve_persistent()
963 rc = efi_mem_reserve_iomem(__pa(rsv), SZ_4K); in efi_mem_reserve_persistent()
965 free_page((unsigned long)rsv); in efi_mem_reserve_persistent()
975 rsv->size = EFI_MEMRESERVE_COUNT(SZ_4K); in efi_mem_reserve_persistent()
976 atomic_set(&rsv->count, 1); in efi_mem_reserve_persistent()
977 rsv->entry[0].base = addr; in efi_mem_reserve_persistent()
978 rsv->entry[0].size = size; in efi_mem_reserve_persistent()
981 rsv->next = efi_memreserve_root->next; in efi_mem_reserve_persistent()
982 efi_memreserve_root->next = __pa(rsv); in efi_mem_reserve_persistent()