blob: 0e38c2e51b0b4ca1ef4928910a80b38a052ddbf7 (
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 6bdd1540dfdf5e81f70a94c0a543fb13c249106b 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 1322/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
|