mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 23:24:22 -04:00
Merge "qcacmn: Increment peer ref count for mgmt Tx frame"
This commit is contained in:
commit
cbe44a82a7
2 changed files with 14 additions and 6 deletions
|
|
@ -990,12 +990,11 @@ QDF_STATUS tgt_mgmt_txrx_tx_completion_handler(
|
|||
ota_comp_cb(cb_context, nbuf, status, tx_compl_params);
|
||||
|
||||
no_registered_cb:
|
||||
/**
|
||||
* decremneting the peer ref count that has been incremented while
|
||||
* passing peer in wlan_mgmt_txrx_mgmt_frame_tx or
|
||||
* wlan_mgmt_txrx_beacon_frame_tx APIs.
|
||||
/*
|
||||
* decrementing the peer ref count that was incremented while
|
||||
* accessing peer in wlan_mgmt_txrx_mgmt_frame_tx
|
||||
*/
|
||||
wlan_objmgr_peer_release_ref(mgmt_desc->peer, WLAN_MGMT_NB_ID);
|
||||
wlan_objmgr_peer_release_ref(mgmt_desc->peer, WLAN_MGMT_SB_ID);
|
||||
wlan_mgmt_txrx_desc_put(mgmt_txrx_ctx, desc_id);
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -224,9 +224,12 @@ QDF_STATUS wlan_mgmt_txrx_mgmt_frame_tx(struct wlan_objmgr_peer *peer,
|
|||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
wlan_objmgr_peer_get_ref(peer, WLAN_MGMT_SB_ID);
|
||||
|
||||
vdev = wlan_peer_get_vdev(peer);
|
||||
if (!vdev) {
|
||||
mgmt_txrx_err("vdev unavailable for peer %p", peer);
|
||||
wlan_objmgr_peer_release_ref(peer, WLAN_MGMT_SB_ID);
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
|
|
@ -234,6 +237,7 @@ QDF_STATUS wlan_mgmt_txrx_mgmt_frame_tx(struct wlan_objmgr_peer *peer,
|
|||
if (!psoc) {
|
||||
mgmt_txrx_err("psoc unavailable for peer %p vdev %p",
|
||||
peer, vdev);
|
||||
wlan_objmgr_peer_release_ref(peer, WLAN_MGMT_SB_ID);
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
|
|
@ -243,12 +247,15 @@ QDF_STATUS wlan_mgmt_txrx_mgmt_frame_tx(struct wlan_objmgr_peer *peer,
|
|||
if (!txrx_ctx) {
|
||||
mgmt_txrx_err("No txrx context for peer %p psoc %p",
|
||||
peer, psoc);
|
||||
wlan_objmgr_peer_release_ref(peer, WLAN_MGMT_SB_ID);
|
||||
return QDF_STATUS_E_NULL_VALUE;
|
||||
}
|
||||
|
||||
desc = wlan_mgmt_txrx_desc_get(txrx_ctx);
|
||||
if (!desc)
|
||||
if (!desc) {
|
||||
wlan_objmgr_peer_release_ref(peer, WLAN_MGMT_SB_ID);
|
||||
return QDF_STATUS_E_RESOURCES;
|
||||
}
|
||||
|
||||
desc->nbuf = buf;
|
||||
desc->tx_ota_cmpl_cb = tx_ota_comp_cb;
|
||||
|
|
@ -260,6 +267,7 @@ QDF_STATUS wlan_mgmt_txrx_mgmt_frame_tx(struct wlan_objmgr_peer *peer,
|
|||
if (!psoc->soc_cb.tx_ops.mgmt_txrx_tx_ops.mgmt_tx_send) {
|
||||
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);
|
||||
wlan_mgmt_txrx_desc_put(txrx_ctx, desc->desc_id);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
|
@ -268,6 +276,7 @@ QDF_STATUS wlan_mgmt_txrx_mgmt_frame_tx(struct wlan_objmgr_peer *peer,
|
|||
vdev, buf, desc->desc_id, mgmt_tx_params)) {
|
||||
mgmt_txrx_err("Mgmt send fail for peer %p psoc %p",
|
||||
peer, psoc);
|
||||
wlan_objmgr_peer_release_ref(peer, WLAN_MGMT_SB_ID);
|
||||
wlan_mgmt_txrx_desc_put(txrx_ctx, desc->desc_id);
|
||||
return QDF_STATUS_E_FAILURE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue