[PATCH] drm/amdgpu: fix amdgpu_vm_clear_freed
Zhang, Jerry (Junwei)
Jerry.Zhang at amd.com
Thu Apr 20 06:12:52 UTC 2017
On 04/20/2017 01:49 PM, Zhang, Jerry (Junwei) wrote:
> On 04/19/2017 10:07 PM, Christian König wrote:
>> From: Christian König <christian.koenig at amd.com>
>>
>> Use amdgpu_vm_bo_update_mapping() instead of amdgpu_vm_bo_split_mapping() here.
>>
>> We don't want any flags set in the cleared areas and splitting
>> should be unnecessary.
>
> Yeah, the mappings in the freed list are split already, I think.
>
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> index 9017b51..27af436 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
>> @@ -1631,8 +1631,9 @@ int amdgpu_vm_clear_freed(struct amdgpu_device *adev,
>> struct amdgpu_bo_va_mapping, list);
>> list_del(&mapping->list);
>>
>> - r = amdgpu_vm_bo_split_mapping(adev, NULL, 0, NULL, vm, mapping,
>> - 0, 0, &f);
>> + r = amdgpu_vm_bo_update_mapping(adev, NULL, 0, NULL, vm,
>> + mapping->start, mapping->last,
>> + 0, 0, &f);
>
> We may also pass the offset for updating.
> + r = amdgpu_vm_bo_update_mapping(adev, NULL, 0, NULL, vm,
> + mapping->start, mapping->last,
> + 0, mapping->offset, &f);
Checking it more, the offset is not key value for clear op, as it's invalid
then regardless of the address bit inside the PTE.
So,
Reviewed-by: Junwei Zhang <Jerry.Zhang at amd.com>
>
> Jerry
>
>> amdgpu_vm_free_mapping(adev, vm, mapping, f);
>> if (r) {
>> fence_put(f);
>>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list