[PATCH] drm/amdgpu: Reserve shared fence slot in amdgpu_vm_update_directories

Zhang, Jerry (Junwei) Jerry.Zhang at amd.com
Mon Jun 25 02:15:30 UTC 2018


On 06/23/2018 12:42 AM, Michel Dänzer wrote:
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> Without this, there could not be enough slots, which could trigger the
> BUG_ON in reservation_object_add_shared_fence.
>
> Cc: stable at vger.kernel.org
> Bugzilla: https://bugs.freedesktop.org/106418
> Reported-by: mikhail.v.gavrilov at gmail.com
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 4 ++++
>   1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 590db78b8c72..75579200f4a6 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -1111,6 +1111,10 @@ int amdgpu_vm_update_directories(struct amdgpu_device *adev,
>   		struct amdgpu_ring *ring;
>   		struct dma_fence *fence;
>
> +		r = reservation_object_reserve_shared(root->tbo.resv);
> +		if (r)
> +			return r;

Good catch.

But we may "goto error" here to do some cleanup.

Jerry

> +
>   		ring = container_of(vm->entity.sched, struct amdgpu_ring,
>   				    sched);
>
>


More information about the amd-gfx mailing list