Lines Matching refs:freelist
389 struct page *freelist[HIGH_WATER_MARK]; member
1017 struct page *freelist) in dma_pte_list_pagetables() argument
1022 pg->freelist = freelist; in dma_pte_list_pagetables()
1023 freelist = pg; in dma_pte_list_pagetables()
1026 return freelist; in dma_pte_list_pagetables()
1031 freelist = dma_pte_list_pagetables(domain, level - 1, in dma_pte_list_pagetables()
1032 pte, freelist); in dma_pte_list_pagetables()
1036 return freelist; in dma_pte_list_pagetables()
1043 struct page *freelist) in dma_pte_clear_level() argument
1064 freelist = dma_pte_list_pagetables(domain, level - 1, pte, freelist); in dma_pte_clear_level()
1072 freelist = dma_pte_clear_level(domain, level - 1, in dma_pte_clear_level()
1075 freelist); in dma_pte_clear_level()
1085 return freelist; in dma_pte_clear_level()
1095 struct page *freelist = NULL; in domain_unmap() local
1102 freelist = dma_pte_clear_level(domain, agaw_to_level(domain->agaw), in domain_unmap()
1108 pgd_page->freelist = freelist; in domain_unmap()
1109 freelist = pgd_page; in domain_unmap()
1114 return freelist; in domain_unmap()
1117 void dma_free_pagelist(struct page *freelist) in dma_free_pagelist() argument
1121 while ((pg = freelist)) { in dma_free_pagelist()
1122 freelist = pg->freelist; in dma_free_pagelist()
1761 struct page *freelist = NULL; in domain_exit() local
1777 freelist = domain_unmap(domain, 0, DOMAIN_MAX_PFN(domain->gaw)); in domain_exit()
1787 dma_free_pagelist(freelist); in domain_exit()
3148 !deferred_flush[i].freelist[j], 0); in flush_unmaps()
3155 if (deferred_flush[i].freelist[j]) in flush_unmaps()
3156 dma_free_pagelist(deferred_flush[i].freelist[j]); in flush_unmaps()
3173 static void add_unmap(struct dmar_domain *dom, struct iova *iova, struct page *freelist) in add_unmap() argument
3189 deferred_flush[iommu_id].freelist[next] = freelist; in add_unmap()
3206 struct page *freelist; in intel_unmap() local
3227 freelist = domain_unmap(domain, start_pfn, last_pfn); in intel_unmap()
3231 last_pfn - start_pfn + 1, !freelist, 0); in intel_unmap()
3234 dma_free_pagelist(freelist); in intel_unmap()
3236 add_unmap(domain, iova, freelist); in intel_unmap()
4075 struct page *freelist; in intel_iommu_memory_notifier() local
4092 freelist = domain_unmap(si_domain, iova->pfn_lo, in intel_iommu_memory_notifier()
4099 !freelist, 0); in intel_iommu_memory_notifier()
4101 dma_free_pagelist(freelist); in intel_iommu_memory_notifier()
4515 struct page *freelist = NULL; in intel_iommu_unmap() local
4532 freelist = domain_unmap(dmar_domain, start_pfn, last_pfn); in intel_iommu_unmap()
4546 npages, !freelist, 0); in intel_iommu_unmap()
4551 dma_free_pagelist(freelist); in intel_iommu_unmap()