summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Dhamdhere <ddhamdhe@codeaurora.org>2017-03-02 17:54:56 -0800
committerPrakash Dhavali <pdhavali@codeaurora.org>2017-03-09 21:08:30 -0800
commit0ca5cc44c875c8dc21bcd6171d2687f339fd12a0 (patch)
tree231c58ec6d1e9f511692234365c4e1c5a7877b2c
parentc9477ad5218324ae0b439c1dca214f4701fcc9c6 (diff)
qcacld-3.0: Initialize peer_unmap_timer during peer attach
Initialize peer_unmap_timer during peer attach instead of at the time of peer detach. Then ol_txrx_unref_delete can destroy the timer without peer detach getting called earlier. CRs-Fixed: 2014183 Change-Id: Icebec27d5562350871a89b5cf71ae99f096feee8
-rw-r--r--core/dp/txrx/ol_txrx.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c
index 8b7ee0e2cebb..f0705ce2ea3d 100644
--- a/core/dp/txrx/ol_txrx.c
+++ b/core/dp/txrx/ol_txrx.c
@@ -2446,6 +2446,8 @@ ol_txrx_peer_attach(ol_txrx_vdev_handle vdev, uint8_t *peer_mac_addr)
OL_TXRX_PEER_INC_REF_CNT(peer);
peer->valid = 1;
+ qdf_mc_timer_init(&peer->peer_unmap_timer, QDF_TIMER_TYPE_SW,
+ peer_unmap_timer_handler, peer);
ol_txrx_peer_find_hash_add(pdev, peer);
@@ -3107,10 +3109,8 @@ int ol_txrx_peer_unref_delete(ol_txrx_peer_handle peer,
vdev->wait_on_peer_id = OL_TXRX_INVALID_LOCAL_PEER_ID;
}
- if (vdev->opmode == wlan_op_mode_sta) {
- qdf_mc_timer_stop(&peer->peer_unmap_timer);
- qdf_mc_timer_destroy(&peer->peer_unmap_timer);
- }
+ qdf_mc_timer_destroy(&peer->peer_unmap_timer);
+
/* check whether the parent vdev has no peers left */
if (TAILQ_EMPTY(&vdev->peer_list)) {
/*
@@ -3326,8 +3326,6 @@ void ol_txrx_peer_detach(ol_txrx_peer_handle peer)
* Create a timer to track unmap events when the sta peer gets deleted.
*/
if (vdev->opmode == wlan_op_mode_sta) {
- qdf_mc_timer_init(&peer->peer_unmap_timer, QDF_TIMER_TYPE_SW,
- peer_unmap_timer_handler, peer);
qdf_mc_timer_start(&peer->peer_unmap_timer,
OL_TXRX_PEER_UNMAP_TIMEOUT);
TXRX_PRINT(TXRX_PRINT_LEVEL_ERR,