Commit a592bb19 authored by Andrew Martin's avatar Andrew Martin Committed by Alex Deucher
Browse files

drm/amdkfd: Dereference null return value



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: fb910658 ("drm/amdkfd: Refactor queue wptr_bo GART mapping")
Signed-off-by: default avatarAndrew Martin <Andrew.Martin@amd.com>
Reviewed-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent 5c3de6b0
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -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);
			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);
		}