Lines Matching refs:rsv
626 struct linux_efi_memreserve *rsv;
641 rsv = (void *)(p + prsv % PAGE_SIZE);
645 struct_size(rsv, entry, rsv->size));
647 for (i = 0; i < atomic_read(&rsv->count); i++) {
648 memblock_reserve(rsv->entry[i].base,
649 rsv->entry[i].size);
652 prsv = rsv->next;
952 struct linux_efi_memreserve *rsv;
967 rsv = memremap(prsv, sizeof(*rsv), MEMREMAP_WB);
968 if (!rsv)
970 index = atomic_fetch_add_unless(&rsv->count, 1, rsv->size);
971 if (index < rsv->size) {
972 rsv->entry[index].base = addr;
973 rsv->entry[index].size = size;
975 memunmap(rsv);
978 prsv = rsv->next;
979 memunmap(rsv);
983 rsv = (struct linux_efi_memreserve *)__get_free_page(GFP_ATOMIC);
984 if (!rsv)
987 rc = efi_mem_reserve_iomem(__pa(rsv), SZ_4K);
989 free_page((unsigned long)rsv);
999 rsv->size = EFI_MEMRESERVE_COUNT(SZ_4K);
1000 atomic_set(&rsv->count, 1);
1001 rsv->entry[0].base = addr;
1002 rsv->entry[0].size = size;
1005 rsv->next = efi_memreserve_root->next;
1006 efi_memreserve_root->next = __pa(rsv);