From 1bf15a02b745cbeeafbb68fa044fe7919e606b29 Mon Sep 17 00:00:00 2001 From: Pavankumar Nandeshwar Date: Wed, 16 Feb 2022 00:34:57 -0800 Subject: [PATCH] qcacmn: Ignore peer if it is missing txrx_peer in reinject path Ignore peer if it is missing txrx_peer in reinject path while going through the peer_list. This condition can hit when the peer_setup call from the control path is not yet received for the peer. Change-Id: Ie57d07353f33749a439415d808fc010702c3c884 CRs-Fixed: 3130821 --- dp/wifi3.0/dp_tx.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dp/wifi3.0/dp_tx.c b/dp/wifi3.0/dp_tx.c index 2c5ca2e1bd..94352360d2 100644 --- a/dp/wifi3.0/dp_tx.c +++ b/dp/wifi3.0/dp_tx.c @@ -3142,7 +3142,8 @@ void dp_tx_nawds_handler(struct dp_soc *soc, struct dp_vdev *vdev, qdf_spin_lock_bh(&vdev->peer_list_lock); TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) { txrx_peer = dp_get_txrx_peer(peer); - qdf_assert_always(txrx_peer); + if (!txrx_peer) + continue; if (!txrx_peer->bss_peer && txrx_peer->nawds_enabled) { peer_id = peer->peer_id; @@ -3520,9 +3521,8 @@ void dp_tx_reinject_handler(struct dp_soc *soc, qdf_spin_lock_bh(&vdev->peer_list_lock); TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) { txrx_peer = dp_get_txrx_peer(peer); - qdf_assert_always(txrx_peer); - if (txrx_peer->bss_peer) + if (!txrx_peer || txrx_peer->bss_peer) continue; /* Detect wds peers that use 3-addr framing for mcast. @@ -3546,7 +3546,8 @@ void dp_tx_reinject_handler(struct dp_soc *soc, qdf_spin_lock_bh(&vdev->peer_list_lock); TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) { txrx_peer = dp_get_txrx_peer(peer); - qdf_assert_always(txrx_peer); + if (!txrx_peer) + continue; if ((txrx_peer->peer_id != HTT_INVALID_PEER) && #ifdef WDS_VENDOR_EXTENSION