Lines Matching refs:rsv
727 struct linux_efi_memreserve *rsv;
742 rsv = (void *)(p + prsv % PAGE_SIZE);
746 struct_size(rsv, entry, rsv->size));
748 for (i = 0; i < atomic_read(&rsv->count); i++) {
749 memblock_reserve(rsv->entry[i].base,
750 rsv->entry[i].size);
753 prsv = rsv->next;
1070 struct linux_efi_memreserve *rsv;
1085 rsv = memremap(prsv, sizeof(*rsv), MEMREMAP_WB);
1086 if (!rsv)
1088 index = atomic_fetch_add_unless(&rsv->count, 1, rsv->size);
1089 if (index < rsv->size) {
1090 rsv->entry[index].base = addr;
1091 rsv->entry[index].size = size;
1093 memunmap(rsv);
1096 prsv = rsv->next;
1097 memunmap(rsv);
1101 rsv = (struct linux_efi_memreserve *)__get_free_page(GFP_ATOMIC);
1102 if (!rsv)
1105 rc = efi_mem_reserve_iomem(__pa(rsv), SZ_4K);
1107 free_page((unsigned long)rsv);
1117 rsv->size = EFI_MEMRESERVE_COUNT(SZ_4K);
1118 atomic_set(&rsv->count, 1);
1119 rsv->entry[0].base = addr;
1120 rsv->entry[0].size = size;
1123 rsv->next = efi_memreserve_root->next;
1124 efi_memreserve_root->next = __pa(rsv);