Browse Source

qcacmn: Reset SKB buffer link in wmi descriptor if Tx fails

Reset the SKB buffer pointer in the wmi descriptor when the Tx fails
to avoid the double free of the SKB buffer

Change-Id: I0101961c5f63403484cf6b7c850b8254ab7b8d9b
CRs-Fixed: 2073177
Kiran Kumar Lokere 7 years ago
parent
commit
86a17f6ab4

+ 2 - 0
umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_utils_api.c

@@ -272,6 +272,7 @@ QDF_STATUS wlan_mgmt_txrx_mgmt_frame_tx(struct wlan_objmgr_peer *peer,
 		mgmt_txrx_err("mgmt txrx tx op to send mgmt frame is NULL for psoc: %p",
 				psoc);
 		wlan_objmgr_peer_release_ref(peer, WLAN_MGMT_SB_ID);
+		desc->nbuf = NULL;
 		wlan_mgmt_txrx_desc_put(txrx_ctx, desc->desc_id);
 		return QDF_STATUS_E_FAILURE;
 	}
@@ -281,6 +282,7 @@ QDF_STATUS wlan_mgmt_txrx_mgmt_frame_tx(struct wlan_objmgr_peer *peer,
 		mgmt_txrx_err("Mgmt send fail for peer %p psoc %p",
 				peer, psoc);
 		wlan_objmgr_peer_release_ref(peer, WLAN_MGMT_SB_ID);
+		desc->nbuf = NULL;
 		wlan_mgmt_txrx_desc_put(txrx_ctx, desc->desc_id);
 		return QDF_STATUS_E_FAILURE;
 	}