Procházet zdrojové kódy

qcacld-3.0: Deinit/ini WMA VDEV around mem zero

The WMA vdev structure contains wakelocks which must be deinitialized
and initialized any time these structures are mem-zeroed. Add
deinit/init calls to vdev attach error cases.

Change-Id: I36012606d4cc49c076ac6903ff49530c45433374
CRs-Fixed: 2102645
Dustin Brown před 7 roky
rodič
revize
35b61f6b69
1 změnil soubory, kde provedl 7 přidání a 0 odebrání
  1. 7 0
      core/wma/src/wma_dev_if.c

+ 7 - 0
core/wma/src/wma_dev_if.c

@@ -622,7 +622,11 @@ out:
 		qdf_mem_free(iface->addBssStaContext);
 	if (iface->staKeyParams)
 		qdf_mem_free(iface->staKeyParams);
+
+	wma_vdev_deinit(iface);
 	qdf_mem_zero(iface, sizeof(*iface));
+	wma_vdev_init(iface);
+
 	del_sta_self_req_param->status = status;
 	if (generate_rsp)
 		wma_send_del_sta_self_resp(del_sta_self_req_param);
@@ -3050,7 +3054,10 @@ void wma_vdev_resp_timer(void *data)
 			qdf_mem_free(iface->addBssStaContext);
 		if (iface->staKeyParams)
 			qdf_mem_free(iface->staKeyParams);
+
+		wma_vdev_deinit(iface);
 		qdf_mem_zero(iface, sizeof(*iface));
+		wma_vdev_init(iface);
 	} else if (tgt_req->msg_type == WMA_ADD_BSS_REQ) {
 		tpAddBssParams params = (tpAddBssParams) tgt_req->user_data;