mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
drm/amdkfd: Separate dma unmap and free of dma address array operations
We do not need free dma address array of svm_range each time we do dma unmap for pages in svm_range as we can reuse the same array. Only free it when free svm_range. Separate these two operations and use them accordingly. Signed-off-by: Xiaogang Chen <xiaogang.chen@amd.com> Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
8ab7fab6b6
commit
df954b695c
@@ -460,7 +460,7 @@ svm_migrate_vma_to_vram(struct kfd_node *node, struct svm_range *prange,
|
||||
start >> PAGE_SHIFT, end >> PAGE_SHIFT,
|
||||
0, node->id, trigger);
|
||||
|
||||
svm_range_dma_unmap(adev->dev, scratch, 0, npages);
|
||||
svm_range_dma_unmap_dev(adev->dev, scratch, 0, npages);
|
||||
|
||||
out_free:
|
||||
kvfree(buf);
|
||||
@@ -544,7 +544,7 @@ svm_migrate_ram_to_vram(struct svm_range *prange, uint32_t best_loc,
|
||||
|
||||
if (cpages) {
|
||||
prange->actual_loc = best_loc;
|
||||
svm_range_free_dma_mappings(prange, true);
|
||||
svm_range_dma_unmap(prange);
|
||||
} else {
|
||||
svm_range_vram_node_free(prange);
|
||||
}
|
||||
@@ -745,7 +745,7 @@ svm_migrate_vma_to_ram(struct kfd_node *node, struct svm_range *prange,
|
||||
start >> PAGE_SHIFT, end >> PAGE_SHIFT,
|
||||
node->id, 0, trigger);
|
||||
|
||||
svm_range_dma_unmap(adev->dev, scratch, 0, npages);
|
||||
svm_range_dma_unmap_dev(adev->dev, scratch, 0, npages);
|
||||
|
||||
out_free:
|
||||
kvfree(buf);
|
||||
|
||||
Reference in New Issue
Block a user