Lines Matching refs:paddr
612 static enum page_cache_mode lookup_memtype(u64 paddr) in lookup_memtype() argument
617 if (x86_platform.is_untracked_pat_range(paddr, paddr + PAGE_SIZE)) in lookup_memtype()
620 if (pat_pagerange_is_ram(paddr, paddr + PAGE_SIZE)) { in lookup_memtype()
623 page = pfn_to_page(paddr >> PAGE_SHIFT); in lookup_memtype()
629 entry = rbt_memtype_lookup(paddr); in lookup_memtype()
798 static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot, in reserve_pfn_range() argument
806 is_ram = pat_pagerange_is_ram(paddr, paddr + size); in reserve_pfn_range()
817 pcm = lookup_memtype(paddr); in reserve_pfn_range()
822 (unsigned long long)paddr, in reserve_pfn_range()
823 (unsigned long long)(paddr + size - 1), in reserve_pfn_range()
832 ret = reserve_memtype(paddr, paddr + size, want_pcm, &pcm); in reserve_pfn_range()
838 !is_new_memtype_allowed(paddr, size, want_pcm, pcm)) { in reserve_pfn_range()
839 free_memtype(paddr, paddr + size); in reserve_pfn_range()
843 (unsigned long long)paddr, in reserve_pfn_range()
844 (unsigned long long)(paddr + size - 1), in reserve_pfn_range()
857 if (kernel_map_sync_memtype(paddr, size, pcm) < 0) { in reserve_pfn_range()
858 free_memtype(paddr, paddr + size); in reserve_pfn_range()
868 static void free_pfn_range(u64 paddr, unsigned long size) in free_pfn_range() argument
872 is_ram = pat_pagerange_is_ram(paddr, paddr + size); in free_pfn_range()
874 free_memtype(paddr, paddr + size); in free_pfn_range()
886 resource_size_t paddr; in track_pfn_copy() local
896 if (follow_phys(vma, vma->vm_start, 0, &prot, &paddr)) { in track_pfn_copy()
901 return reserve_pfn_range(paddr, vma_size, &pgprot, 1); in track_pfn_copy()
915 resource_size_t paddr = (resource_size_t)pfn << PAGE_SHIFT; in track_pfn_remap() local
922 ret = reserve_pfn_range(paddr, size, prot, 0); in track_pfn_remap()
935 pcm = lookup_memtype(paddr); in track_pfn_remap()
940 paddr += PAGE_SIZE; in track_pfn_remap()
941 if (pcm != lookup_memtype(paddr)) in track_pfn_remap()
975 resource_size_t paddr; in untrack_pfn() local
982 paddr = (resource_size_t)pfn << PAGE_SHIFT; in untrack_pfn()
983 if (!paddr && !size) { in untrack_pfn()
984 if (follow_phys(vma, vma->vm_start, 0, &prot, &paddr)) { in untrack_pfn()
991 free_pfn_range(paddr, size); in untrack_pfn()