Re: [PATCH] drm/amdkfd: init drm_client with funcs hook

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

 



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@xxxxxxx>

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@xxxxxxx>


---
  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;



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux