浏览代码

qcacld-3.0: Free buffer on receiving OTA completion

Free netbuf on receiving tx OTA completion for mgmt
frames.

Change-Id: I53e45fdb079c70cb4cfe081631ad225a556067b8
CRs-Fixed: 1103247
Himanshu Agarwal 8 年之前
父节点
当前提交
8b472bc246

+ 3 - 0
core/mac/src/pe/lim/lim_p2p.c

@@ -435,6 +435,9 @@ QDF_STATUS lim_p2p_action_cnf(void *context, qdf_nbuf_t buf,
 		}
 	}
 
+	if (buf)
+		qdf_nbuf_free(buf);
+
 	return status;
 }
 

+ 6 - 0
core/mac/src/pe/lim/lim_process_tdls.c

@@ -528,12 +528,18 @@ static QDF_STATUS lim_mgmt_tdls_tx_complete(void *context,
 		if (!session_entry) {
 			lim_log(mac_ctx, LOGE, FL("session id %d is not found"),
 				mac_ctx->lim.tdls_frm_session_id);
+			if (buf)
+				qdf_nbuf_free(buf);
 			return QDF_STATUS_E_FAILURE;
 		}
 		lim_send_sme_mgmt_tx_completion(mac_ctx, session_entry,
 						tx_complete);
 		mac_ctx->lim.tdls_frm_session_id = NO_SESSION;
 	}
+
+	if (buf)
+		qdf_nbuf_free(buf);
+
 	return QDF_STATUS_SUCCESS;
 }
 

+ 16 - 0
core/mac/src/pe/lim/lim_send_management_frames.c

@@ -2032,6 +2032,10 @@ static QDF_STATUS lim_auth_tx_complete_cnf(void *context,
 	} else {
 		mac_ctx->auth_ack_status = LIM_AUTH_ACK_RCD_FAILURE;
 	}
+
+	if (buf)
+		qdf_nbuf_free(buf);
+
 	return QDF_STATUS_SUCCESS;
 }
 
@@ -2557,6 +2561,10 @@ QDF_STATUS lim_disassoc_tx_complete_cnf(void *context,
 
 	lim_log(pMac, LOG1,
 		FL("txCompleteSuccess: %d"), txCompleteSuccess);
+
+	if (buf)
+		qdf_nbuf_free(buf);
+
 	return lim_send_disassoc_cnf(pMac);
 }
 
@@ -2569,6 +2577,10 @@ QDF_STATUS lim_deauth_tx_complete_cnf(void *context,
 
 	lim_log(pMac, LOG1,
 		FL("txCompleteSuccess: %d"), txCompleteSuccess);
+
+	if (buf)
+		qdf_nbuf_free(buf);
+
 	return lim_send_deauth_cnf(pMac);
 }
 
@@ -3586,6 +3598,10 @@ static QDF_STATUS lim_oper_chan_change_confirm_tx_complete_cnf(
 
 	lim_log(mac_ctx, LOG1,
 		 FL(" tx_complete= %d"), tx_complete);
+
+	if (buf)
+		qdf_nbuf_free(buf);
+
 	return QDF_STATUS_SUCCESS;
 }
 

+ 1 - 1
core/wma/src/wma_data.c

@@ -2875,7 +2875,7 @@ QDF_STATUS wma_tx_packet(void *wma_context, void *tx_frame, uint16_t frmLen,
 		status = wlan_mgmt_txrx_mgmt_frame_tx(peer,
 				(tpAniSirGlobal)wma_handle->mac_context,
 				(qdf_nbuf_t)tx_frame,
-				tx_frm_download_comp_cb, tx_frm_ota_comp_cb,
+				NULL, tx_frm_ota_comp_cb,
 				WLAN_UMAC_COMP_MLME, &mgmt_param);
 		if (status != QDF_STATUS_SUCCESS) {
 			WMA_LOGE("%s: mgmt tx failed", __func__);