Lines Matching full:range
59 * @mni: the range (mm) is about to update
60 * @range: details on the invalidation
67 const struct mmu_notifier_range *range, in amdgpu_hmm_invalidate_gfx() argument
74 if (!mmu_notifier_range_blockable(range)) in amdgpu_hmm_invalidate_gfx()
96 * @mni: the range (mm) is about to update
97 * @range: details on the invalidation
100 * We temporarily evict the BO attached to this range. This necessitates
104 const struct mmu_notifier_range *range, in amdgpu_hmm_invalidate_hsa() argument
109 if (!mmu_notifier_range_blockable(range)) in amdgpu_hmm_invalidate_hsa()
171 struct amdgpu_hmm_range *range) in amdgpu_hmm_range_get_pages() argument
177 struct hmm_range *hmm_range = &range->hmm_range; in amdgpu_hmm_range_get_pages()
197 pr_debug("hmm range: start = 0x%lx, end = 0x%lx", in amdgpu_hmm_range_get_pages()
232 * amdgpu_hmm_range_valid - check if an HMM range is still valid
233 * @range: pointer to the &struct amdgpu_hmm_range to validate
235 * Determines whether the given HMM range @range is still valid by
237 * typically used to verify that the range has not been invalidated
241 * * true if @range is valid and can be used safely
242 * * false if @range is NULL or has been invalidated
244 bool amdgpu_hmm_range_valid(struct amdgpu_hmm_range *range) in amdgpu_hmm_range_valid() argument
246 if (!range) in amdgpu_hmm_range_valid()
249 return !mmu_interval_read_retry(range->hmm_range.notifier, in amdgpu_hmm_range_valid()
250 range->hmm_range.notifier_seq); in amdgpu_hmm_range_valid()
254 * amdgpu_hmm_range_alloc - allocate and initialize an AMDGPU HMM range
255 * @bo: optional buffer object to associate with this HMM range
266 struct amdgpu_hmm_range *range; in amdgpu_hmm_range_alloc() local
268 range = kzalloc_obj(*range); in amdgpu_hmm_range_alloc()
269 if (!range) in amdgpu_hmm_range_alloc()
272 range->bo = amdgpu_bo_ref(bo); in amdgpu_hmm_range_alloc()
273 return range; in amdgpu_hmm_range_alloc()
277 * amdgpu_hmm_range_free - release an AMDGPU HMM range
278 * @range: pointer to the range object to free
280 * Releases all resources held by @range, including the associated
285 void amdgpu_hmm_range_free(struct amdgpu_hmm_range *range) in amdgpu_hmm_range_free() argument
287 if (!range) in amdgpu_hmm_range_free()
290 kvfree(range->hmm_range.hmm_pfns); in amdgpu_hmm_range_free()
291 amdgpu_bo_unref(&range->bo); in amdgpu_hmm_range_free()
292 kfree(range); in amdgpu_hmm_range_free()