diff --git a/dp/wifi3.0/dp_ipa.c b/dp/wifi3.0/dp_ipa.c index e728334e3558..2d28337fc715 100644 --- a/dp/wifi3.0/dp_ipa.c +++ b/dp/wifi3.0/dp_ipa.c @@ -1775,20 +1775,20 @@ bool dp_ipa_rx_intrabss_fwd(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, if (!qdf_mem_cmp(eh->h_dest, vdev->mac_addr.raw, QDF_MAC_ADDR_SIZE)) return false; - da_peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, eh->h_dest); + da_peer = dp_find_peer_by_addr_and_vdev(dp_pdev_to_cdp_pdev(pdev), + dp_vdev_to_cdp_vdev(vdev), + eh->h_dest); + if (!da_peer) return false; - if (da_peer->vdev != vdev) - return false; + sa_peer = dp_find_peer_by_addr_and_vdev(dp_pdev_to_cdp_pdev(pdev), + dp_vdev_to_cdp_vdev(vdev), + eh->h_source); - sa_peer = dp_find_peer_by_addr((struct cdp_pdev *)pdev, eh->h_source); if (!sa_peer) return false; - if (sa_peer->vdev != vdev) - return false; - /* * In intra-bss forwarding scenario, skb is allocated by IPA driver. * Need to add skb to internal tracking table to avoid nbuf memory