aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1756-drm-amdkfd-Fix-minor-memory-leak-if-sched_policy-is-.patch
blob: 9eb433c68427e1a6a15a894a0892b8106bde35da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
From 8755ec14cd7f60976911726b4be59dc4d01b86d2 Mon Sep 17 00:00:00 2001
From: Felix Kuehling <Felix.Kuehling@amd.com>
Date: Fri, 28 Jul 2017 23:51:51 -0400
Subject: [PATCH 1756/4131] drm/amdkfd: Fix minor memory leak if sched_policy
 is invalid

Change-Id: I05932df0780fe7dba8085b9902c90a8022bec2f0
Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
---
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
index b78a773..93bf90b 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
@@ -1610,7 +1610,7 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
 		break;
 	default:
 		pr_err("Invalid scheduling policy %d\n", dqm->sched_policy);
-		return NULL;
+		goto out_free;
 	}
 
 	switch (dev->device_info->asic_family) {
@@ -1641,12 +1641,12 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
 		BUG();
 	}
 
-	if (dqm->ops.initialize(dqm) != 0) {
-		kfree(dqm);
-		return NULL;
-	}
+	if (!dqm->ops.initialize(dqm))
+		return dqm;
 
-	return dqm;
+out_free:
+	kfree(dqm);
+	return NULL;
 }
 
 void device_queue_manager_uninit(struct device_queue_manager *dqm)
-- 
2.7.4