Lines Matching refs:limit_pfn
45 __get_cached_rbnode(struct iova_domain *iovad, unsigned long *limit_pfn) in __get_cached_rbnode() argument
47 if ((*limit_pfn != iovad->dma_32bit_pfn) || in __get_cached_rbnode()
54 *limit_pfn = curr_iova->pfn_lo - 1; in __get_cached_rbnode()
61 unsigned long limit_pfn, struct iova *new) in __cached_rbnode_insert_update() argument
63 if (limit_pfn != iovad->dma_32bit_pfn) in __cached_rbnode_insert_update()
96 iova_get_pad_size(unsigned int size, unsigned int limit_pfn) in iova_get_pad_size() argument
98 return (limit_pfn + 1 - size) & (__roundup_pow_of_two(size) - 1); in iova_get_pad_size()
102 unsigned long size, unsigned long limit_pfn, in __alloc_and_insert_iova_range() argument
112 saved_pfn = limit_pfn; in __alloc_and_insert_iova_range()
113 curr = __get_cached_rbnode(iovad, &limit_pfn); in __alloc_and_insert_iova_range()
118 if (limit_pfn < curr_iova->pfn_lo) in __alloc_and_insert_iova_range()
120 else if (limit_pfn < curr_iova->pfn_hi) in __alloc_and_insert_iova_range()
124 pad_size = iova_get_pad_size(size, limit_pfn); in __alloc_and_insert_iova_range()
125 if ((curr_iova->pfn_hi + size + pad_size) <= limit_pfn) in __alloc_and_insert_iova_range()
129 limit_pfn = curr_iova->pfn_lo - 1; in __alloc_and_insert_iova_range()
137 pad_size = iova_get_pad_size(size, limit_pfn); in __alloc_and_insert_iova_range()
138 if ((iovad->start_pfn + size + pad_size) > limit_pfn) { in __alloc_and_insert_iova_range()
145 new->pfn_lo = limit_pfn - (size + pad_size) + 1; in __alloc_and_insert_iova_range()
272 unsigned long limit_pfn, in alloc_iova() argument
282 ret = __alloc_and_insert_iova_range(iovad, size, limit_pfn, in alloc_iova()