wlan: Fix the race condition in RX Low resource recovery mechanism
Set the wpalPacketAvailableCB before we try to get a VOS
packet from the 'free list' and reset it if vos_pkt_get_packet()
returns a valid packet. This order is required to avoid the
following race condition:
1. The call to vos_pkt_get_packet() from wpalPacketAlloc() in
RX_Thread determines that no more packets are available in
the 'free list' and sets the low resource callbacks.
2. In parallel vos_pkt_return_packet() is called in MC_Thread for a
Management frame before wpalPacketAlloc() gets a chance to set
wpalPacketAvailableCB and since the 'low resource callbacks'
are set the, callback function - wpalPacketRXLowResourceCB is
executed.But as wpalPacketAvailableCB is still NULL the low
resource recovery fails.
Change-Id: Ie1cea3c9411e314a4309efdc207f4f69953f844f
CRs-Fixed: 591906
1 file changed