[PATCH] drm/amdkfd: init drm_client with funcs hook
Felix Kuehling
felix.kuehling at amd.com
Mon Jan 15 15:31:28 UTC 2024
On 2024-01-12 3:05, Flora Cui wrote:
> otherwise drm_client_dev_unregister() would try to
> kfree(&adev->kfd.client).
>
> Signed-off-by: Flora Cui <flora.cui at amd.com>
Thank you for finding and fixing this bug. You can add:
Fixes: 1819200166ce ("drm/amdkfd: Export DMABufs from KFD using GEM
handles")
Reviewed-by: Felix Kuehling <felix.kuehling at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> index 067690ba7bff..81af6bf2f052 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> @@ -138,6 +138,9 @@ static void amdgpu_amdkfd_reset_work(struct work_struct *work)
> amdgpu_device_gpu_recover(adev, NULL, &reset_context);
> }
>
> +static const struct drm_client_funcs kfd_client_funcs = {
> + .unregister = drm_client_release,
> +};
> void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
> {
> int i;
> @@ -161,7 +164,7 @@ void amdgpu_amdkfd_device_init(struct amdgpu_device *adev)
> .enable_mes = adev->enable_mes,
> };
>
> - ret = drm_client_init(&adev->ddev, &adev->kfd.client, "kfd", NULL);
> + ret = drm_client_init(&adev->ddev, &adev->kfd.client, "kfd", &kfd_client_funcs);
> if (ret) {
> dev_err(adev->dev, "Failed to init DRM client: %d\n", ret);
> return;
More information about the amd-gfx
mailing list