Lines Matching refs:limit_pfn
77 __get_cached_rbnode(struct iova_domain *iovad, unsigned long *limit_pfn) in __get_cached_rbnode() argument
79 if ((*limit_pfn != iovad->dma_32bit_pfn) || in __get_cached_rbnode()
86 *limit_pfn = curr_iova->pfn_lo - 1; in __get_cached_rbnode()
93 unsigned long limit_pfn, struct iova *new) in __cached_rbnode_insert_update() argument
95 if (limit_pfn != iovad->dma_32bit_pfn) in __cached_rbnode_insert_update()
127 iova_get_pad_size(int size, unsigned int limit_pfn) in iova_get_pad_size() argument
133 pad_size = (limit_pfn + 1) % (1 << order); in iova_get_pad_size()
139 unsigned long size, unsigned long limit_pfn, in __alloc_and_insert_iova_range() argument
149 saved_pfn = limit_pfn; in __alloc_and_insert_iova_range()
150 curr = __get_cached_rbnode(iovad, &limit_pfn); in __alloc_and_insert_iova_range()
155 if (limit_pfn < curr_iova->pfn_lo) in __alloc_and_insert_iova_range()
157 else if (limit_pfn < curr_iova->pfn_hi) in __alloc_and_insert_iova_range()
161 pad_size = iova_get_pad_size(size, limit_pfn); in __alloc_and_insert_iova_range()
162 if ((curr_iova->pfn_hi + size + pad_size) <= limit_pfn) in __alloc_and_insert_iova_range()
166 limit_pfn = curr_iova->pfn_lo - 1; in __alloc_and_insert_iova_range()
174 pad_size = iova_get_pad_size(size, limit_pfn); in __alloc_and_insert_iova_range()
175 if ((iovad->start_pfn + size + pad_size) > limit_pfn) { in __alloc_and_insert_iova_range()
182 new->pfn_lo = limit_pfn - (size + pad_size) + 1; in __alloc_and_insert_iova_range()
257 unsigned long limit_pfn, in alloc_iova() argument
273 ret = __alloc_and_insert_iova_range(iovad, size, limit_pfn, in alloc_iova()