Răsfoiți Sursa

qcacld-3.0: Free user defined WOWL patterns

User defined wowl patterns are not freed in all
of the driver unload paths, and it causes
leaks in the system.
Free user defined wowl patterns in all the driver
unload paths.

Change-Id: I7b980a6392badb3d28f2c665a96108beb71f02d5
CRs-Fixed: 2144562
Kabilan Kannan 7 ani în urmă
părinte
comite
6edafeb0c3

+ 2 - 2
core/hdd/inc/wlan_hdd_wowl.h

@@ -174,10 +174,10 @@ bool hdd_enter_wowl(struct hdd_adapter *adapter,
 bool hdd_exit_wowl(struct hdd_adapter *adapter);
 
 /**
- * hdd_deinit_wowl() - Deinit function to cleanup WoWL allocated memory
+ * hdd_free_user_wowl_ptrns() - Deinit function to cleanup WoWL allocated memory
  *
  * Return: None
  */
-void hdd_deinit_wowl(void);
+void hdd_free_user_wowl_ptrns(void);
 
 #endif /* #ifndef _WLAN_HDD_WOWL_H */

+ 3 - 1
core/hdd/src/wlan_hdd_main.c

@@ -9605,6 +9605,9 @@ int hdd_wlan_stop_modules(struct hdd_context *hdd_ctx, bool ftm_mode)
 
 	hdd_info("Present Driver Status: %d", hdd_ctx->driver_status);
 
+	/* free user wowl patterns */
+	hdd_free_user_wowl_ptrns();
+
 	switch (hdd_ctx->driver_status) {
 	case DRIVER_MODULES_UNINITIALIZED:
 		hdd_info("Modules not initialized just return");
@@ -11097,7 +11100,6 @@ err_out:
  */
 void hdd_deinit(void)
 {
-	hdd_deinit_wowl();
 	qdf_timer_free(&hdd_drv_ops_inactivity_timer);
 
 	wlan_destroy_bug_report_lock();

+ 1 - 1
core/hdd/src/wlan_hdd_wowl.c

@@ -527,7 +527,7 @@ bool hdd_exit_wowl(struct hdd_adapter *adapter)
 	return true;
 }
 
-void hdd_deinit_wowl(void)
+void hdd_free_user_wowl_ptrns(void)
 {
 	int i;