mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-11-10 12:52:37 -05:00
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
This commit is contained in:
parent
72e062a734
commit
f3a3e912af
1 changed files with 4 additions and 2 deletions
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue