From 92db771024cafff47000539f9fa7f8fb14fa3ae4 Mon Sep 17 00:00:00 2001 From: Manjunathappa Prakash Date: Fri, 27 May 2016 00:19:34 -0700 Subject: [PATCH] qcacld-3.0: Do not modify vdev Rx callback in peer (de)init functions Do not reset vdev->rx callback in peer modification functions, same vdev corresponds to multiple peer. Without this TDLS handshake fails, vdev->rx null callback function results in dropping of datapath packets. Change-Id: I39b51d2596cde494bee888009583a42f12a3f068 CRs-Fixed: 1024298 --- core/dp/txrx/ol_txrx.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/dp/txrx/ol_txrx.c b/core/dp/txrx/ol_txrx.c index 85fa99eea316..d0133c9a62c6 100644 --- a/core/dp/txrx/ol_txrx.c +++ b/core/dp/txrx/ol_txrx.c @@ -1530,7 +1530,6 @@ ol_txrx_peer_attach(ol_txrx_vdev_handle vdev, uint8_t *peer_mac_addr) for (i = 0; i < MAX_NUM_PEER_ID_PER_PEER; i++) peer->peer_ids[i] = HTT_INVALID_PEER; - peer->vdev->rx = NULL; qdf_spinlock_create(&peer->peer_info_lock); qdf_spinlock_create(&peer->bufq_lock); @@ -2261,7 +2260,6 @@ ol_txrx_clear_peer_internal(struct ol_txrx_peer_t *peer) ol_txrx_flush_rx_frames(peer, 1); qdf_spin_lock_bh(&peer->peer_info_lock); - peer->vdev->rx = NULL; peer->state = OL_TXRX_PEER_STATE_DISC; qdf_spin_unlock_bh(&peer->peer_info_lock); @@ -3656,6 +3654,9 @@ void ol_rx_data_process(struct ol_txrx_peer_t *peer, */ if (!data_rx) { struct ol_rx_cached_buf *cache_buf; + + TXRX_PRINT(TXRX_PRINT_LEVEL_ERR, + "Data on the peer before it is registered!!!"); buf = rx_buf_list; while (buf) { next_buf = qdf_nbuf_queue_next(buf);