RE: [PATCH 5.15 015/139] drm/amdgpu: install stub fence into potential unused fence pointers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[Public]

> -----Original Message-----
> From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> Sent: Thursday, August 24, 2023 10:49 AM
> To: stable@xxxxxxxxxxxxxxx
> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>;
> patches@xxxxxxxxxxxxxxx; Koenig, Christian <Christian.Koenig@xxxxxxx>; Yu,
> Lang <Lang.Yu@xxxxxxx>; Deucher, Alexander
> <Alexander.Deucher@xxxxxxx>; Sasha Levin <sashal@xxxxxxxxxx>
> Subject: [PATCH 5.15 015/139] drm/amdgpu: install stub fence into potential
> unused fence pointers
>
> From: Lang Yu <Lang.Yu@xxxxxxx>
>
> [ Upstream commit 187916e6ed9d0c3b3abc27429f7a5f8c936bd1f0 ]
>
> When using cpu to update page tables, vm update fences are unused.
> Install stub fence into these fence pointers instead of NULL to avoid NULL
> dereference when calling dma_fence_wait() on them.
>
> Suggested-by: Christian König <christian.koenig@xxxxxxx>
> Signed-off-by: Lang Yu <Lang.Yu@xxxxxxx>
> Reviewed-by: Christian König <christian.koenig@xxxxxxx>
> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

Please revert this from 5.15.  This was autoselected for 5.15, but is not applicable to this branch.  This is causing log spam on 5.15.  It was included in 5.15.128 as commit 4921792e04f2125b5eadef9dbe9417a8354c7eff.  See https://gitlab.freedesktop.org/drm/amd/-/issues/2820

Thanks,

Alex

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 0e4554950e072..788611a50a68e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2260,6 +2260,7 @@ struct amdgpu_bo_va
> *amdgpu_vm_bo_add(struct amdgpu_device *adev,
>       amdgpu_vm_bo_base_init(&bo_va->base, vm, bo);
>
>       bo_va->ref_count = 1;
> +     bo_va->last_pt_update = dma_fence_get_stub();
>       INIT_LIST_HEAD(&bo_va->valids);
>       INIT_LIST_HEAD(&bo_va->invalids);
>
> @@ -2974,7 +2975,8 @@ int amdgpu_vm_init(struct amdgpu_device *adev,
> struct amdgpu_vm *vm)
>               vm->update_funcs = &amdgpu_vm_cpu_funcs;
>       else
>               vm->update_funcs = &amdgpu_vm_sdma_funcs;
> -     vm->last_update = NULL;
> +
> +     vm->last_update = dma_fence_get_stub();
>       vm->last_unlocked = dma_fence_get_stub();
>
>       mutex_init(&vm->eviction_lock);
> @@ -3117,7 +3119,7 @@ int amdgpu_vm_make_compute(struct
> amdgpu_device *adev, struct amdgpu_vm *vm)
>               vm->update_funcs = &amdgpu_vm_sdma_funcs;
>       }
>       dma_fence_put(vm->last_update);
> -     vm->last_update = NULL;
> +     vm->last_update = dma_fence_get_stub();
>       vm->is_compute_context = true;
>
>       /* Free the shadow bo for compute VM */
> --
> 2.40.1
>
>





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux