Lines Matching full:phys
89 * @phys: The physical address of the page.
98 static unsigned long kho_radix_encode_key(phys_addr_t phys, unsigned int order) in kho_radix_encode_key() argument
103 unsigned long l = phys >> (PAGE_SHIFT + order); in kho_radix_encode_key()
122 phys_addr_t phys; in kho_radix_decode_key() local
127 phys = key << (PAGE_SHIFT + *order); in kho_radix_decode_key()
129 return phys; in kho_radix_decode_key()
281 phys_addr_t phys; in kho_radix_walk_leaf() local
286 phys = kho_radix_decode_key(key | i, &order); in kho_radix_walk_leaf()
287 err = cb(phys, order); in kho_radix_walk_leaf()
401 static struct page *kho_restore_page(phys_addr_t phys, bool is_folio) in kho_restore_page() argument
403 struct page *page = pfn_to_online_page(PHYS_PFN(phys)); in kho_restore_page()
413 * check also implicitly makes sure phys is order-aligned since for in kho_restore_page()
414 * non-order-aligned phys addresses, magic will never be set. in kho_restore_page()
434 * @phys: physical address of the folio.
438 struct folio *kho_restore_folio(phys_addr_t phys) in kho_restore_folio() argument
440 struct page *page = kho_restore_page(phys, true); in kho_restore_folio()
448 * @phys: physical address of the first page.
456 struct page *kho_restore_pages(phys_addr_t phys, unsigned long nr_pages) in kho_restore_pages() argument
458 const unsigned long start_pfn = PHYS_PFN(phys); in kho_restore_pages()
476 static int __init kho_preserved_memory_reserve(phys_addr_t phys, in kho_preserved_memory_reserve() argument
484 page = phys_to_page(phys); in kho_preserved_memory_reserve()
487 memblock_reserve(phys, sz); in kho_preserved_memory_reserve()
488 memblock_reserved_mark_noinit(phys, sz); in kho_preserved_memory_reserve()
746 phys_addr_t phys = virt_to_phys(blob); in kho_add_subtree() local
766 &phys, sizeof(phys)); in kho_add_subtree()
995 for (int i = 0; i < ARRAY_SIZE(chunk->phys) && chunk->phys[i]; i++) { in kho_vmalloc_unpreserve_chunk()
996 pfn = PHYS_PFN(chunk->phys[i]); in kho_vmalloc_unpreserve_chunk()
1040 phys_addr_t phys = page_to_phys(vm->pages[i]); in kho_preserve_vmalloc() local
1046 chunk->phys[idx++] = phys; in kho_preserve_vmalloc()
1047 if (idx == ARRAY_SIZE(chunk->phys)) { in kho_preserve_vmalloc()
1129 for (int i = 0; i < ARRAY_SIZE(chunk->phys) && chunk->phys[i]; i++) { in kho_restore_vmalloc()
1130 phys_addr_t phys = chunk->phys[i]; in kho_restore_vmalloc() local
1135 page = kho_restore_pages(phys, contig_pages); in kho_restore_vmalloc()
1142 phys += contig_pages * PAGE_SIZE; in kho_restore_vmalloc()
1314 * @phys: if found, the physical address of the sub blob is stored in @phys.
1318 * address in @phys and optionally its size in @size.
1322 int kho_retrieve_subtree(const char *name, phys_addr_t *phys, size_t *size) in kho_retrieve_subtree() argument
1331 if (!phys) in kho_retrieve_subtree()
1342 *phys = (phys_addr_t)*val; in kho_retrieve_subtree()
1651 pr_warn("setup: failed to memremap scratch (phys=0x%llx, len=%lld)\n", in kho_populate()