aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1322-drm-amdkfd-Fix-minor-memory-leak-if-sched_policy-is-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1322-drm-amdkfd-Fix-minor-memory-leak-if-sched_policy-is-.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1322-drm-amdkfd-Fix-minor-memory-leak-if-sched_policy-is-.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1322-drm-amdkfd-Fix-minor-memory-leak-if-sched_policy-is-.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1322-drm-amdkfd-Fix-minor-memory-leak-if-sched_policy-is-.patch
new file mode 100644
index 00000000..0e38c2e5
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1322-drm-amdkfd-Fix-minor-memory-leak-if-sched_policy-is-.patch
@@ -0,0 +1,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
+