On MDM platform, low throughput is observed for SAP RX
terminated scenario. In case of SAP, SAP device itself
is added as a slave to the bridge device, which acts as
a router device.
For SAP RX terminated scenario, destination MAC address
of RX packets is the bridge device. However for WDI 3.0,
WLAN IPA has to check if destination MAC is a valid peer
for SAP intra-bss forwarding.
Currently in intra-bss forwarding, dp_find_peer_by_addr()
is used to look up if destination MAC address is a valid
peer. Issue is that in dp_find_peer_by_addr() peer
spinlock is grabbed via qdf_spin_lock_bh. IPA RX is in
process context and qdf_spin_lock_bh turns to spin_lock_bh,
which hurts netif_rx badly.
Fix is to check if RX packet is bridge device terminated
in IPA component module so as to bypass intra-bss
forwarding logic and to make the RX path BH lockless.
Note that if there's a BH lockless API to check if
destination MAC address is a valid peer, this check will
not be necessary.
Change-Id: I00fca3e75ae55ae1d2f591fddd00e49dfb634c5c
CRs-Fixed: 2494442