]> www.infradead.org Git - users/hch/misc.git/commitdiff
drm/amdkfd: Dereference null return value
authorAndrew Martin <Andrew.Martin@amd.com>
Tue, 26 Nov 2024 17:10:59 +0000 (12:10 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 10 Dec 2024 15:16:09 +0000 (10:16 -0500)
In the function pqm_uninit there is a call-assignment of "pdd =
kfd_get_process_device_data" which could be null, and this value was
later dereferenced without checking.

Fixes: fb91065851cd ("drm/amdkfd: Refactor queue wptr_bo GART mapping")
Signed-off-by: Andrew Martin <Andrew.Martin@amd.com>
Reviewed-by: Felix Kuehling <felix.kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c

index c76db22a1000578378a8f5183c59ab3b13bce524..59b92d66e958905448a4253908635e817e4b8039 100644 (file)
@@ -212,13 +212,17 @@ static void pqm_clean_queue_resource(struct process_queue_manager *pqm,
 void pqm_uninit(struct process_queue_manager *pqm)
 {
        struct process_queue_node *pqn, *next;
-       struct kfd_process_device *pdd;
 
        list_for_each_entry_safe(pqn, next, &pqm->queues, process_queue_list) {
                if (pqn->q) {
-                       pdd = kfd_get_process_device_data(pqn->q->device, pqm->process);
-                       kfd_queue_unref_bo_vas(pdd, &pqn->q->properties);
-                       kfd_queue_release_buffers(pdd, &pqn->q->properties);
+                       struct kfd_process_device *pdd = kfd_get_process_device_data(pqn->q->device,
+                                                                                    pqm->process);
+                       if (pdd) {
+                               kfd_queue_unref_bo_vas(pdd, &pqn->q->properties);
+                               kfd_queue_release_buffers(pdd, &pqn->q->properties);
+                       } else {
+                               WARN_ON(!pdd);
+                       }
                        pqm_clean_queue_resource(pqm, pqn);
                }