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
This commit is contained in:

committed by
Madan Koyyalamudi

parent
804b9e2382
commit
1bf15a02b7
@@ -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);
|
qdf_spin_lock_bh(&vdev->peer_list_lock);
|
||||||
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
||||||
txrx_peer = dp_get_txrx_peer(peer);
|
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) {
|
if (!txrx_peer->bss_peer && txrx_peer->nawds_enabled) {
|
||||||
peer_id = peer->peer_id;
|
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);
|
qdf_spin_lock_bh(&vdev->peer_list_lock);
|
||||||
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
||||||
txrx_peer = dp_get_txrx_peer(peer);
|
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;
|
continue;
|
||||||
|
|
||||||
/* Detect wds peers that use 3-addr framing for mcast.
|
/* 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);
|
qdf_spin_lock_bh(&vdev->peer_list_lock);
|
||||||
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
TAILQ_FOREACH(peer, &vdev->peer_list, peer_list_elem) {
|
||||||
txrx_peer = dp_get_txrx_peer(peer);
|
txrx_peer = dp_get_txrx_peer(peer);
|
||||||
qdf_assert_always(txrx_peer);
|
if (!txrx_peer)
|
||||||
|
continue;
|
||||||
|
|
||||||
if ((txrx_peer->peer_id != HTT_INVALID_PEER) &&
|
if ((txrx_peer->peer_id != HTT_INVALID_PEER) &&
|
||||||
#ifdef WDS_VENDOR_EXTENSION
|
#ifdef WDS_VENDOR_EXTENSION
|
||||||
|
Reference in New Issue
Block a user