mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 02:24:24 +02:00
drm/amdkfd: fix vram allocation failure for a special case
When it only allocates vram without va, which is 0, and a SVM range allocated stays in this range, the vram allocation returns failure. It should be skipped for this case from SVM usage check. Signed-off-by: Eric Huang <jinhuieric.huang@amd.com> Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
7bbfa1b1fa
commit
93aa919ca0
|
|
@ -1070,7 +1070,12 @@ static int kfd_ioctl_alloc_memory_of_gpu(struct file *filep,
|
|||
svm_range_list_lock_and_flush_work(&p->svms, current->mm);
|
||||
mutex_lock(&p->svms.lock);
|
||||
mmap_write_unlock(current->mm);
|
||||
if (interval_tree_iter_first(&p->svms.objects,
|
||||
|
||||
/* Skip a special case that allocates VRAM without VA,
|
||||
* VA will be invalid of 0.
|
||||
*/
|
||||
if (!(!args->va_addr && (flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM)) &&
|
||||
interval_tree_iter_first(&p->svms.objects,
|
||||
args->va_addr >> PAGE_SHIFT,
|
||||
(args->va_addr + args->size - 1) >> PAGE_SHIFT)) {
|
||||
pr_err("Address: 0x%llx already allocated by SVM\n",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user