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
tree: a7f086180e0ba0d72c874c148fe76f6e1611e941
  1. CORE/
  2. firmware_bin/
  3. prima/
  4. riva/
  5. Android.mk
  6. Kbuild
  7. Kconfig