Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e73390d1 authored by Oak Zeng's avatar Oak Zeng Committed by Alex Deucher
Browse files

drm/amdkfd: Fix a potential memory leak



Free mqd_mem_obj it GTT buffer allocation for MQD+control stack fails.

Signed-off-by: default avatarOak Zeng <ozeng@amd.com>
Reviewed-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarFelix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 11614c36
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ static int init_mqd(struct mqd_manager *mm, void **mqd,
	struct v9_mqd *m;
	struct kfd_dev *kfd = mm->dev;

	*mqd_mem_obj = NULL;
	/* From V9,  for CWSR, the control stack is located on the next page
	 * boundary after the mqd, we will use the gtt allocation function
	 * instead of sub-allocation function.
@@ -93,8 +94,10 @@ static int init_mqd(struct mqd_manager *mm, void **mqd,
	} else
		retval = kfd_gtt_sa_allocate(mm->dev, sizeof(struct v9_mqd),
				mqd_mem_obj);
	if (retval != 0)
	if (retval) {
		kfree(*mqd_mem_obj);
		return -ENOMEM;
	}

	m = (struct v9_mqd *) (*mqd_mem_obj)->cpu_ptr;
	addr = (*mqd_mem_obj)->gpu_addr;