Blob Blame History Raw
From 95ef79a5c2fba35849bbcf35211d48888b50e497 Mon Sep 17 00:00:00 2001
From: Philip Yang <Philip.Yang@amd.com>
Date: Tue, 24 Jan 2023 10:10:14 -0500
Subject: drm/amdkfd: Cleanup KFD nodes creation
Git-commit: 8c45a8340dd097ea0d6be6f718c4882283d9645d
Patch-mainline: v6.5-rc1
References: jsc#PED-3527 jsc#PED-5475 jsc#PED-6068 jsc#PED-6070 jsc#PED-6116 jsc#PED-6120 jsc#PED-5065 jsc#PED-5477 jsc#PED-5511 jsc#PED-6041 jsc#PED-6069 jsc#PED-6071

kfd node allocation outside kfd->num_nodes loop is not needed and causes
memory leak because kfd->num_nodes is at least equal to 1.

Signed-off-by: Philip Yang <Philip.Yang@amd.com>
Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Acked-by: Patrik Jakobsson <pjakobsson@suse.de>
---
 drivers/gpu/drm/amd/amdkfd/kfd_device.c | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
index 7a963d0a34e2..d7cffd91f1d7 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
@@ -729,26 +729,12 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
 	/* TODO: Needs to be updated for memory partitioning */
 	svm_migrate_init(kfd->adev);
 
-	/* Allocate the KFD node */
-	node = kzalloc(sizeof(struct kfd_node), GFP_KERNEL);
-	if (!node) {
-		dev_err(kfd_device, "Error allocating KFD node\n");
-		goto node_alloc_error;
-	}
-
-	node->adev = kfd->adev;
-	node->kfd = kfd;
-	node->kfd2kgd = kfd->kfd2kgd;
-	node->vm_info.vmid_num_kfd = vmid_num_kfd;
-	node->vm_info.first_vmid_kfd = first_vmid_kfd;
-	node->vm_info.last_vmid_kfd = last_vmid_kfd;
-	node->max_proc_per_quantum = max_proc_per_quantum;
-	atomic_set(&node->sram_ecc_flag, 0);
-
 	amdgpu_amdkfd_get_local_mem_info(kfd->adev, &kfd->local_mem_info);
 
 	dev_info(kfd_device, "Total number of KFD nodes to be created: %d\n",
 				kfd->num_nodes);
+
+	/* Allocate the KFD nodes */
 	for (i = 0; i < kfd->num_nodes; i++) {
 		node = kzalloc(sizeof(struct kfd_node), GFP_KERNEL);
 		if (!node)
-- 
2.42.0