qcacld-3.0: Allocate memory for cds config only once

During the driver load cds_cfg memory is allocated during the
hdd_Wlan_startup and cds_open. Since the memory allocated by the
cds_open overwrites the pointer of memory allocated by hdd_wlan_statup
during memory free only memory allocated by cds_open is freed resulting
in memory leakage.

To migitate this issue, allocate the memory for the cds config only once.

Change-Id: I01bf0e8110a2519a2e11da398be3c98f9ca4db8f
CRs-Fixed: 1055648
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 2a0510c..c9251c4 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -1731,6 +1731,12 @@
 			goto hif_close;
 		}
 
+		ret = hdd_update_config(hdd_ctx);
+		if (ret) {
+			hdd_err("Failed to update configuration :%d", ret);
+			goto ol_cds_free;
+		}
+
 		status = cds_open();
 		if (!QDF_IS_STATUS_SUCCESS(status)) {
 			hdd_err("Failed to Open CDS: %d", status);
@@ -7384,10 +7390,6 @@
 
 	hdd_wlan_green_ap_init(hdd_ctx);
 
-	ret = hdd_update_config(hdd_ctx);
-	if (ret)
-		goto err_exit_nl_srv;
-
 	ret = hdd_wlan_start_modules(hdd_ctx, adapter, false);
 	if (ret) {
 		hdd_alert("Failed to start modules: %d", ret);