diff options
| author | Deepak Dhamdhere <ddhamdhe@codeaurora.org> | 2017-03-02 17:54:56 -0800 |
|---|---|---|
| committer | Prakash Dhavali <pdhavali@codeaurora.org> | 2017-03-09 21:08:30 -0800 |
| commit | 0ca5cc44c875c8dc21bcd6171d2687f339fd12a0 (patch) | |
| tree | 231c58ec6d1e9f511692234365c4e1c5a7877b2c | |
| parent | c9477ad5218324ae0b439c1dca214f4701fcc9c6 (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.c | 10 |
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, |
