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
This commit is contained in:
Manjunathappa Prakash 2016-05-27 00:19:34 -07:00 • committed by Vishwajith Upendra
commit 92db771024

View file

@ -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);