qcacmn: Fix peer ref count issue in p2p_mgmt_tx
In p2p_mgmt_tx ref count of peer is increased and then frame is passed to wlan_mgmt_txrx_mgmt_frame_tx which again increase the peer ref count. But the ref count is decreased only once when frame tx complete is received. Thus peer is not deleted while vdev destroy and as peer contain the ref count of vdev, vdev is also not deleted. To fix this Release peer ref count in p2p_mgmt_tx after wlan_mgmt_txrx_mgmt_frame_tx. Change-Id: I8e42b22559f3baf43fefd6183a079f9629efae3c CRs-Fixed: 2028550
Šī revīzija ir iekļauta:

revīziju iesūtīja
Sandeep Puligilla

vecāks
41e34b1ca3
revīzija
8c2ce41254
@@ -784,11 +784,11 @@ static QDF_STATUS p2p_mgmt_tx(struct tx_action_context *tx_ctx,
|
||||
|
||||
wh = (struct wlan_frame_hdr *)frame;
|
||||
mac_addr = wh->i_addr1;
|
||||
peer = wlan_objmgr_get_peer(psoc, mac_addr, WLAN_MGMT_NB_ID);
|
||||
peer = wlan_objmgr_get_peer(psoc, mac_addr, WLAN_P2P_ID);
|
||||
if (!peer) {
|
||||
mac_addr = wh->i_addr2;
|
||||
peer = wlan_objmgr_get_peer(psoc, mac_addr,
|
||||
WLAN_MGMT_NB_ID);
|
||||
WLAN_P2P_ID);
|
||||
}
|
||||
|
||||
if (!peer) {
|
||||
@@ -813,6 +813,8 @@ static QDF_STATUS p2p_mgmt_tx(struct tx_action_context *tx_ctx,
|
||||
tx_comp_cb, tx_ota_comp_cb,
|
||||
WLAN_UMAC_COMP_P2P, &mgmt_param);
|
||||
|
||||
wlan_objmgr_peer_release_ref(peer, WLAN_P2P_ID);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user