summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2015-01-31 08:13:49 -0800
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2015-02-03 16:04:47 +0530
commitf2af211d3eaeee8d3631f697d0405773b69a6845 (patch)
tree38b5a8bb0388f4873ac66af53251e674e9badfa7
parentd22e8aabd3a3cb6faffd8cf39bb7ff7f9befdea3 (diff)
qcacld: vos: Fix crash and memory leak caused by driver load failure
In vos_sched_open() if any thread creation fails it needs to free TL shim free packet queue and unregister cpu notifier such that kernel does not call cpu notifier callback when driver context is freed. Change-Id: I6aed6d6dc5eb7cf41a348914f55583c842bc6f26 CRs-Fixed: 789429
-rw-r--r--CORE/VOSS/src/vos_sched.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/CORE/VOSS/src/vos_sched.c b/CORE/VOSS/src/vos_sched.c
index 017ea3f34a98..5ac1a5024cbf 100644
--- a/CORE/VOSS/src/vos_sched.c
+++ b/CORE/VOSS/src/vos_sched.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -414,6 +414,13 @@ TX_THREAD_START_FAILURE:
MC_THREAD_START_FAILURE:
//De-initialize all the message queues
vos_sched_deinit_mqs(pSchedContext);
+
+
+#ifdef QCA_CONFIG_SMP
+ unregister_hotcpu_notifier(&vos_cpu_hotplug_notifier);
+ vos_free_tlshim_pkt_freeq(gpVosSchedContext);
+#endif
+
return VOS_STATUS_E_RESOURCES;
} /* vos_sched_open() */